目录
(三)、do while循环中的break和continue
一、while循环
(一)、语法形式
while语句的语法结构和if语句非常相似。其语法形式如下:
while (表达式)
语句
//如果循环体想包含更多的语句, 可以加上大括号
(二)、if和while的对比
if (表达式)
语句
while (表达式)
语句
代码如下:
这就是它们的区别,while语句是可以实现循环效果的。
(三)、while语句的执行流程
首先上来就是执行判断表达式,表达式的值为0,循环直接结束;表达式的值不为0,则执行循环语句,语句执行完后再继续判断是否进行下一次判断。
(四)、while语句的实践
练习:
练习:
分析:
1.要想得到num的最低位,可以使用num%10的运算,得到的余数就是最低位。
2.要想去掉num的最低位,找出倒数第二位,则使用num/10操作就可以去掉最低位。例:num=12345/10得到1234,1234相较于12345就去掉了最低位,1234%10就得到倒数第二位4。
3.循环1和2两个步骤,在num=0之前,就能到所有位。
二、for循环
(一)、语法形式
for循环是三种循环中使用最多的,for循环的语法形式如下:
for (表达式1; 表达式2; 表达式3)
语句
//如果循环体想包含更多的语句, 可以加上大括号
表达式1:用于循环变量的初始化
表达式2:用于循环结束条件的判断
表达式3:用于循环变量的调整
代码如下:
注:for循环的初始化、判断、调整三个部分是可以省略的;若判断部分省略的话,意味着判断恒成立。
(二)、for循环的执行流程
首先执行表达式1初始化循环变量,接下来就是执行表达式2的判断部分,表达式2的结果如果==0,则循环结束;表达式2的结果如果!=0,则执行循环语句,循环语句执行完后,再去执行表达式3调整循环变量,然后再去表达式2继续进行判断,表达式2的结果是否为0,决定循环是否继续。
整个循环过程中,表达式1初始化部分只被执行1次,剩下的就是表达式2、循环语句、表达式3再循环。
如前面代码所示:
(三)、for循环的实践
(四)、for循环和while循环的对比
for和while在实现循环的过程中都有初始化、判断、调整这三个部分,但是for循环的三个部分非常集中,便于代码的维护,而如果代码较多的时候while循环的三个部分就比较分散,所以从形式上for循环要更优一些。
练习:
三、do - while循环
(一)、语法形式
在循环语句中do while语句的使用最少,语法形式如下:
do
语句
//如果循环体想包含更多的语句, 可以加上大括号
while (表达式)
while和for两种循环都是先判断,条件如果满足就进入循环,执行循环语句,如果不满足就跳出循环;而do while循环则是先进入循环体,执行循环语句,然后再执行while后的判断表达式,表达式为真,就会进行下一次循环,表达式为假,则不再继续循环。
代码如下:
(二)、do while循环的执行流程
如上图所示,在do while循环中先执行语句,执行完语句,再去执行判断表达式,判断表达式的结果是!=0,则继续循环,执行循环语句;判断表达式的结果==0,则循环结束。
在do while语句中循环体是至少执行一次的,因此do while循环是三种循环中比较特殊的一类。
(三)、do while循环的实践
以下是其他循环解法:
四、break和continue语句
在循环执行的过程中,如果某些状况发生的时候,需要提前终止循环,这是非常常见的现象。C语言中提供了break和continue两个关键字,就是应用到循环中的。
⚪ break的作用是永久的终止循环,只要break被执行,直接就会跳出循环,继续往后执行。
⚪continue的作用是跳过本次循环continue后面的代码。(在while循环和for循环中有所差异)
(一)、while循环中的break和continue
① break举例
break的作用就是永久的终止循环,只要break被执行,break外的第一层循环就终止。因此,想在某种条件下终止循环,则可以使用break来完成我们想要的效果。
分析:当打印完1,2,3,4,当i=5时,循环在break处终止,不再打印,不在循环。
② continue举例
continue是继续的意思,在循环中的作用就是跳过本次循环continue后面的代码,继续进行下一次循环的判断。
(二)、for循环中的break和continue
① break举例
其实和while循环中的break一样,for循环中的break也是用于终止循环的,不管循环还需要循环多少次,只要执行到break,循环就彻底终止。
break的作用是永久的终止循环,未来我们在某个条件发生的时候,不想再继续循环的时候,就可以使用break来完成。
② continue举例
在for循环中continue的作用是跳过本次循环中continue后面的代码,直接渠道循环的调整部分。
(三)、do while循环中的break和continue
do while语句中的break和continue的作用和while循环中的几乎一模一样。
① break、continue举例
五、循环的嵌套
练习:
分析:1.要从100-200之间找出素数,首先得有100-200之间的数,可以使用循环解决。
2.假设要判断i是否为素数,需要拿2~i-1之间的数字去试除,则需要2~i-1之间的数,可以使用循环解决。
3.如果2~i-1之间有数字能整除i,则i不是素数,如果都不能整除,则i是素数。
以下是几种小优化写法:
六、goto语句
C语言提供了一种非常特别的语法,就是goto语句和跳转标号,goto语句可以实现在同一个函数内跳转到设置好的标号处。跳转标号名称不是固定的,可以根据需要自己设定。
代码如下:
goto语句如果使用的不当,就会导致在函数内部随意乱跳转,打乱程序的执行流程,所以我们的建议是能不用尽量不去使用;但goto语句也不是一无是处,在多层循环代码中,如果想要快速跳出使用goto就很方便。
代码如下:
for (...)
{
for (...)
{
for (...)
{
for (...)
{
if (disater)
goto error;
}
}
}
}
error:
分析:本来for循环想提前退出得使用break语句,一个break只能跳出一层for循环,上述代码中四层循环就得使用4个break才能跳出循环,在这种情况下我们使用goto语句就会更加的便捷。