流程控制语句即通过一些语句,控制程序的执行流程。
1.顺序结构
从上往下依次进行,是程序默认的执行流程。
2.分支结构
if判断语句
if(关系表达式)
{
语句体A;
}
else
{
语句体B;
}
switch选择语句
switch(表达式)
{
case值1:语句体1;break;
case值2:语句体2;break;
case值3:语句体3;break;
default:语句体n;break;
}
switch是对有限个case进行匹配,if一般是对一个范围进行判断
如果在执行的过程中,遇到了break,那么直接结束整个switch,但是如果没用遇到switch,就会继续执行下面的case中的代码,直到遇到break,或者把整个switch中所有的代码全部执行完了才会结束。
3.循环结构
C语言中循环语句:for;while;do while;
3.1 for循环语句:
for(初始化语句;条件判断语句;条件控制语句)
{
循环体语句;
}
初始化语句:循环的开始条件,条件判断语句:循环的结束条件,条件控制语句:控制循环次数,循环体语句:要重复执行的代码
eg:累加求和
//求1-5之间的和
#includ <stdio.h>
int main
{
int sum = 0;
for (int num=1; num <= 5; num++)
{
sum=num+sum ;
}
printf("%d\n", sum );
return 0;
}
如果将sum定义在for循环里面,那么结果会不一样,因为每次循环都变成了新的sum,而不是上一次已经完成过一次循环的sum。类似的,输出printf定义在for循环里,输出的也不是所期望的和sum,而是每次的sum,输出不止有一个数字。这里可以自己写完调试下。
如果每次循环都想操作同一个变量,比如说累加,那么变量必须定义在外面;
如果每次循环都想操作不同的变量,那么变量被定义在循环里面。
//求偶数和
int i;
int sum=0;
for (i = 1; i <= 100; i++)
{
if (i % 2 == 0)
{
sum = sum + i;
}
}
printf("%d\n", sum);
return 0;
//键盘输入两个数字,代表一个范围,统计这个范围内,既能被6整除又能被8整除的数字由多少个
int num1, num2;
printf("键盘输入的两个数字为;");
scanf_s("%d %d", &num1, &num2);
int min = num1 > num2 ? num2: num1;
int max = num1 > num2 ? num1: num2;
int j = 0;
for (int i=min; i <= max ; i++)
{
if (i % 6 == 0 && i % 8 == 0)
{
j++;
}
}
printf("%d\n", j);
3.2 while循环语句
初始化语句
while(条件判断语句)
{
循环体语句
条件控制语句
}
不管是for循环还是while循环,运行规则都是一样的,但是如果知道循环次数或者循环的范围,,使用for循环;如果不知道循环的次数和范围,只知道循环的结束条件,采用while循环。
do while 循环在实际生活中基本不用
4.无限循环
for(;;)
while(1)
想要在中途结束无限循环的话,可以使用break或者continue跳出循环,break不能单独使用。continue表示结束本次循环,继续下次循环。
循环嵌套就是既有内循环又有外循环,先确定内循环干了什么事情,外循环就是内循环的循环操作.