C语言是一门结构化语言。像我们平时生活中的事一般都可以大致分为三种结构:
顺序结构 | 平时我们的代码由上而下按行运行 |
选择结构 | if switch |
循环结构 | while do while |
一、分支
1.1分支语句
· if else书写格式需注意:else总是跟离他最近的语句匹配。比如:
int main()
{
int a = 0;
int b = 2;
if (a == 1)
{
if (b == 2)
printf("hehe\n");
else
printf("haha\n");
}
return 0;
}
在这个语句中,出现了两个 if ,但只有一个else,但其实这里面的else是和第二个if相匹配的。对于上述程序,由于第一个if表达式为假,故程序什么都不会生成。
1.2switch
switch也完成了分支,比如说输入第几天,输出今天是星期几,用代码就可以这样表示:
int main()
{
int day = 0;
scanf("%d", &day);
//if else 虽然也可以完成,但是有更简单的switch可以用
switch (day) //switch是入口
{
case 1:
printf("星期一\n");
break; //break是出口
case 2:
printf("星期二\n");
break;
case 3:
printf("星期三\n");
break;
case 4:
printf("星期四\n");
break;
case 5:
printf("星期五\n");
break;
case 6:
printf("星期六\n");
break;
case 7:
printf("星期天\n");
break;
default:
printf("输入错误\n");
break;
}
return 0;
}
二、循环
循环在C语言中可以分为while循环、do while循环、for循环,那接下来就展开说下各个循环的用法。
2.1while
int main()
{
int i = 1;
while (i<=10)
{
printf("%d ", i); //while里面的判断表达式,如果是真,就执行循环体
//当判断表达式为假的时候,就会停下循环
i++;
}
return 0;
}
运行程序得到:
在循环语句中,有两个关键字会终止循环。分别是break和continue。那简单来说就是break可以直接跳出循环,continue是跳过本次循环continue关键字之后的代码,再次进入循环体。
不只是在while循环中,在其他循环中也是这样,那接下来用while循环来做演示:
int main()
{
int i = 1;
while (i<=10)
{
if (i == 5)
break; //break在wile循环中的作用是终止这个循环
printf("%d ", i);
i++;
}
return 0;
}
代码运行:
可以看到程序在打印过 i=4 这次循环后,在下一次循环判断if的表达式为真,break跳出了循环,因此结果只有1 2 3 4
那了解了break的作用后,再来看一看continue:
int main()
{
int i = 1;
while (i<=10)
{
if (i == 5)
continue; //遇到continue continue后面代码就会被跳过本次循环
//跳到循环开始的判断的地方
printf("%d ", i);
i++;
}
return 0;
}
代码运行:
可以看到程序并没有执行完成,光标还在闪烁,这时因为当i=5的时候,continue让程序转到了循环语句那里,5<=10是满足的,因此又进行了continue...成了一个死循环。
总结:
循环是让程序完成各种重复运算的奠基石,C语言主要有三种循环,下一节介绍最常用的for循环