一、循环语句
循环语句允许我们重复执行一段代码,直到满足某个条件才停止。C语言提供了三种类型的循环语句:while循环、do-while循环和for循环。
1. while循环:
while循环是最简单的循环语句,其基本语法如下:
while (条件表达式) {
// 循环体代码
}
在每次循环开始之前,都会先判断条件表达式的值。如果条件为真,则执行循环体内的代码;否则跳过整个循环。
2. do-while循环:
do-while循环与while循环类似,不同之处在于它先执行循环体内的代码,再判断条件表达式的值。其基本语法如下:
do {
// 循环体代码
} while (条件表达式);
无论条件表达式的值如何,循环体至少会被执行一次。
3.for循环:
for循环是一种更加灵活的循环语句,它在执行前先初始化循环变量,然后在每次循环结束时对循环变量进行更新。其基本语法如下:
for (初始化表达式; 条件表达式; 更新表达式) {
// 循环体代码
}
for循环的执行流程为:先执行初始化表达式,然后判断条件表达式的值,如果为真则执行循环体内的代码,并在执行完循环体后执行更新表达式,然后再次判断条件表达式的值。
二、分支语句
分支语句允许程序根据不同的条件选择不同的执行路径。C语言提供了两种类型的分支语句:if语句和switch语句。
1. if语句:
if语句是最常用和最简单的分支语句,其基本语法如下:
if(条件表达式) {
// 条件为真时执行的代码
} else {
// 条件为假时执行的代码
}
当条件表达式的值为真时,将执行if代码块中的代码;当条件表达式的值为假时,将执行else代码块中的代码。
2. switch语句:
switch语句用于根据表达式的值选择不同的执行路径,其基本语法如下:
switch (表达式) {
case 值1:
// 执行语句1
break;
case 值2:
// 执行语句2
break;
...
default:
// 默认执行的语句
break;
}
程序会根据表达式的值跳转到对应的case标签处执行相应的代码,直到遇到break语句或switch语句结束。如果没有匹配的case标签,则执行default后面的代码。case标签内没有break的话会继续执行下一条case语句
三、break和continue
在循环执⾏的过程中,如果某些状况发⽣的时候,需要提前终⽌循环,这是⾮常常⻅的现象。C语⾔中 提供了 break 和 continue 两个关键字,就是应⽤到循环中的。
•break 的作⽤是⽤于永久的终⽌循环,只要 break 被执⾏,直接就会跳出当前循环体(只跳出一个循环),继续往后执⾏。
• continue 的作⽤是跳过本次循环 continue 后边的代码。
四、goto语句
C语⾔提供了⼀种⾮常特别的语法,就是 goto 语句和跳转标号, goto 语句可以实现在同⼀个函数内跳转到设置好的标号处。 例如:
int main()
{
printf("hehe\n");
goto next;
printf("haha\n");
next:
printf("跳过了haha的打印\n");
return 0;
}
在多层循环中,goto可以快速跳出循环体。
五、循环嵌套
在解决某些问题时,只用单独的循环或者分支语句,无法高效的解决问题,在这时我们便需要将多种循环和分支语句进行嵌套。例如:
找出100~200之间的素数,并打印在屏幕上。 注:素数⼜称质数,只能被1和本⾝整除的数字。
题⽬分析:
1. 要从100~200之间找出素数,⾸先得有100~200之间的数,这⾥可以使⽤循环解决。
2. 假设要判断i是否为素数,需要拿2~i-1之间的数字去试除i,需要产⽣2~i-1之间的数字,也可以使⽤ 循环解决。 3. 如果2~i-1之间有数字能整除i,则i不是素数,如果都不能整除
,则i是素数。
参考代码
int main()
{
int i = 0;
//循环产⽣100~200的数字
for (i = 100; i <= 200; i++)
{
//判断i是否为素数
//循环产⽣2~i-1之间的数字
int j = 0;
int flag = 1;//假设i是素数
for (j = 2; j < i; j++)
{
if (i % j == 0)
{
flag = 0;
break;
}
}
if (flag == 1)
printf("%d ", i);
}
return 0;
}