2020-10-23

啦啦啦啦今天来更新循环啦****************************************************
while 循环:
只要给定的条件为真,C 语言中的 while 循环语句会重复执行一个目标语句
好比:
C 语言中 while 循环的语法:
while(condition)
{
statement(s);
}
在这里插入图片描述
在这里,while 循环的关键点是循环可能一次都不会执行。当条件为 false 时,会跳过循环主体,直接执行紧接着 while 循环的下一条语句。
再来一个实例:
#include <stdio.h>

int main ()

{

/* 局部变量定义 */

int a = 10;

/* while 循环执行 */

while( a < 20 )

{

  printf("a 的值: %d\n", a);

  a++;

}

return 0;

}

当上面的代码被编译和执行时,它会产生下列结果:
a 的值: 10
a 的值: 11
a 的值: 12
a 的值: 13
a 的值: 14
a 的值: 15
a 的值: 16
a 的值: 17
a 的值: 18
a 的值: 19


超级重要的for循环
for的游戏规则:
@init 会首先被执行,且只会执行一次。这一步允许您声明并初始化任何循环控制变量。您也可以不在这里写任何语句,只要有一个分号出现即可。
@接下来,会判断 condition。如果为真,则执行循环主体。如果为假,则不执行循环主体,且控制流会跳转到紧接着 for 循环的下一条语句。
@在执行完 for 循环主体后,控制流会跳回上面的 increment 语句。该语句允许您更新循环控制变量。该语句可以留空,只要在条件后有一个分号出现即可。
@条件再次被判断。如果为真,则执行循环,这个过程会不断重复(循环主体,然后增加步值,再然后重新判断条件)。在条件变为假时,for 循环终止。

先来一段实例:
#include <stdio.h>

int main ()
{
/* for 循环执行 */
for( int a = 10; a < 20; a = a + 1 )
{
printf(“a 的值: %d\n”, a);
}

return 0;
}

当上面的代码被编译和执行时,它会产生下列结果:
a 的值: 10
a 的值: 11
a 的值: 12
a 的值: 13
a 的值: 14
a 的值: 15
a 的值: 16
a 的值: 17
a 的值: 18
a 的值: 19

相信到了这里可能会有小朋友不了解for循环和while循环的区别
专业解释是:
1.控制条件语句的变量,在for循环结束后,就不可以被访问了,而while循环还可以访问,如果你继续想使用该变量,则可以使用while循环,否则推荐使用for循环。
2.已知循环次数用for循环,未知循环次数用while循环
(摘抄自CSDN大佬)
ps:当我选择时一般为了美观选择2作为参考依据。


下面隆重介绍
break与continue的的用法以及区别!!!
下面是一段来自CSDN魔尊长安的文章
/*
break与continue的的用法以及区别
1.当它们用在循环语句的循环体时,break用于立即退出本层循环,而continue仅仅结束本次循环(本次循环体内不执行
continue语句后的其它语句,但下一次循环还会继续执行。
2. 如果有多层循环时,break只会跳出本层循环,不会跳出其他层的循环
3. break可用于switch语句,表示跳出整个switch语句块,而continue则不能单独的用于switch语句。但是continue可以用于循环内部的switch语句。
4. break和continue语句在循环内的switch语句中使用时,是有区别的。在这种情况下的break是指跳出switch语句块(switch语句块的代码仍然执行)。而这种情况下的continue是指结束本次循环(不在执行switch后面的代码),进行下一次循环
/
/

test1()的打印结果是 i = 0 i = 1 已经跳出循环
是因为break语句直接结束了本层的循环, 直接执行循环后边的语句printf("已经跳出循环\n
");*/
void test1()
{
int i = 0;
for (i = 0; i < 5; i++)
{
if (i == 2)
{
break;
printf(“我没有被打印出来!\n”);
}
printf(“i = %d\n”, i);
}

printf(“已经跳出循环\n”);
}

/*
test2()的打印结果是 i = 0 i = 1 i = 3 i = 4
i = 2没有被打印,是因为continue 结束了那一次循环,继续了下一次循环
*/
void test2()
{
int i = 0;
for (i = 0; i < 5; i++)
{
if (i == 2)
{
continue;
printf(“我没有被打印出来!\n”);
}

printf(“i = %d\n”, i);
}
}

/*
test3()是一个两层for循环,break语句只会跳出最近的一层循环,
第二层for循环继续执行

*/
void test3()
{
int i = 0;
int j = 0;
for (i = 0; i < 5; i++)
{
for (j = 0; j < 5; j++)
{
if (j == 2)
{
break;
}
printf(“Hello: %d\n”, j);

}

printf(“World: %d\n”, i);
}
}
/*
在test4()中,break的作用只会跳出
switch()语句块,执行swith语句块后面的程序printf(“Hello World!\n”);
而不是跳出循环。

与test5()进行对比,continue是结束本次循环,进行下一次循环,
switch()语句块后边的内容不会被打印
*/
void test4()
{
int i = 0;
for (i = 0; i < 2; i++)
{
int j = 5;
switch (j)
{
case 4:
printf(“你好 %d !!!\n”, 4);
break;
case 5:
printf(“你好 %d !!!\n”, 5);
break;
case 6:
printf(“你好 %d!!!\n”, 6);
break;
}

printf(“Hello World!\n”);
}
}

/*
test5()中循环内部的switch语句中的continue是直接结束本次循环,
switch语句块后面的printf(“Hello World!\n”);将不会被执行。
*/
void test5()
{
int i = 0;
for (i = 0; i < 2; i++)
{
int j = 5;
switch (j)
{
case 4:
printf(“你好 %d !!!\n”, 4);
continue;
case 5:
printf(“你好 %d !!!\n”, 5);
continue;
case 6:
printf(“你好 %d!!!\n”, 6);
continue;
}

printf(“Hello World!\n”);
}
}

int main()
{

test1();
printf("---------------------------------------------------------");
test2();
printf("---------------------------------------------------------");

test3();
printf("---------------------------------------------------------");

test4();
test5();
printf("---------------------------------------------------------");

system(“pause”);
return 0;
}


接下来就是do while循环啦
不像 for 和 while 循环,它们是在循环头部测试循环条件。在 C 语言中,do…while 循环是在循环的尾部检查它的条件。
do…while 循环与 while 循环类似,但是 do…while 循环会确保至少执行一次循环。
上一段实例就会了!!!
#include <stdio.h>

int main ()

{

/* 局部变量定义 */

int a = 10;

/* do 循环执行,在条件被测试之前至少执行一次 */

do

{

   printf("a 的值: %d\n", a);

   a = a + 1;

}while( a < 20 );

return 0;

}
ps:(这种其实小编觉得比while更易理解)


最后一个超级重要的嵌套循环
直接上实例嘻嘻
for 嵌套实例

#include <stdio.h>

int main ()
{
/* 局部变量定义 */
int i, j;

for(i=2; i<100; i++) {
for(j=2; j <= (i/j); j++)
if(!(i%j)) break; // 如果找到,则不是质数
if(j > (i/j)) printf("%d 是质数\n", i);
}

return 0;
}

当上面的代码被编译和执行时,它会产生下列结果:
2 是质数
3 是质数
5 是质数
7 是质数
11 是质数
13 是质数
17 是质数
19 是质数
23 是质数
29 是质数
31 是质数
37 是质数
41 是质数
43 是质数
47 是质数
53 是质数
59 是质数
61 是质数
67 是质数
71 是质数
73 是质数
79 是质数
83 是质数
89 是质数
97 是质数
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
while 嵌套实例

#include <stdio.h>
int main()
{
int i=1,j;
while (i <= 5)
{
j=1;
while (j <= i )
{
printf("%d “,j);
j++;
}
printf(”\n");
i++;
}
return 0;
}

当上面的代码被编译和执行时,它会产生下列结果:
1
1 2
1 2 3
1 2 3 4
1 2 3 4 5
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
do-while 嵌套实例

#include <stdio.h>
int main()
{
int i=1,j;
do
{
j=1;
do
{
printf("*");
j++;
}while(j <= i);
i++;
printf("\n");
}while(i <= 5);
return 0;
}

当上面的代码被编译和执行时,它会产生下列结果:
*
**




(实例摘自菜鸟教程)


最后就是最爱的goto语句了
C 语言中的 goto 语句允许把控制无条件转移到同一函数内的被标记的语句。
注意:在任何编程语言中,都不建议使用 goto 语句。因为它使得程序的控制流难以跟踪,使程序难以理解和难以修改。任何使用 goto 语句的程序可以改写成不需要使用 goto 语句的写法。

上实例!!!
实例
#include <stdio.h>

int main ()

{

/* 局部变量定义 */

int a = 10;

/* do 循环执行 */

LOOP:do

{

if( a == 15)

{

/* 跳过迭代 */

a = a + 1;

goto LOOP;

}

printf(“a 的值: %d\n”, a);

a++;

}while( a < 20 );

return 0;

}

当上面的代码被编译和执行时,它会产生下列结果:
a 的值: 10
a 的值: 11
a 的值: 12
a 的值: 13
a 的值: 14
a 的值: 16
a 的值: 17
a 的值: 18
a 的值: 19

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值