分支结构:
1.If…else(3种形式)
1.if基本形式
if(表达式) 语句;
语义:若表达式的值为真(0为假,非0为真),则执行语句;否则不执行
2.if...else基本形式
if(表达式) 语句1
else 语句2
语义:首先判断括号内是否为真(0为假,非0为真),若为真则执行语句1,否则就执行语句2,值得注意的是if...else执行语句默认只执行一条语句,如果想执行多语句则需用{}将执行语句括起来;
3.if...else嵌套形式
if(表达式1)
if(表达式2)
语句1
else
语句2
else
语句2
嵌套:将另外一个if…else语句放在另外一个if…else里面的用法,常见形式如上;另外此时应该注意悬空else问题,即else与最近的if匹配,可以对if或else下面的执行语句加{}解决
2.Switch
switch(表达式)
这个表达式必须是整型或char类型(因为char可用ASCII编码转为十进制数即整型)
{
case(整型常量表达式1):表达式;break;
case(整型常量表达式2):表达式;break;
……
【default:表达式;】——default处理case不能处理的选项】
}
其中case决定入口,break决定出口,所以一定要有;
循环结构
要讲循环,首先要了解break与continue,其中break结束整个循环(即一刀两断),continue跳出此次循环直接去判断条件进行下次循环(即藕断丝连)
1.While循环
While(表达式)
{
语句;
}
当表达式为真(非0)时执行语句,为假(0)时跳出循环
2.for循环
for(表达式1;表达式2;表达式3)
{
语句;
}
表达式1:用于循环变量的初始化;
表达式2;用于循环结束条件的判断;
表达式3:用于循环变量的调整;
因为对循环变量的初始化,循环结束条件的判断和对循环变量的调整集中在一起,而不像while循环较为分散,更便于代码的维护,所以大多数情况都使用for循环
同样也可以将一个for循环放在另外一个for循环里面使用嵌套结构
eg:九九乘法表,其代码如下
#include<stdio.h>
int main()
{
int i, j;
for (i = 1; i < 10; i++)
{
for (j = 1; j <= i; j++)
{
printf("%d*%d=%d ", i, j,i*j);
}
printf("\n");
}
return 0;
}
3. do…while循环
do
{
语句;
}While(表达式);
至少执行一次,先进入循环体执行一次再判断表达式,使用情况较少。