主页 > IT业界  > 

【C语言】第四期——循环语句

【C语言】第四期——循环语句
目录

前言

1 for循环

1.1 基本结构

1.2 应用

1.2.1 输出0-10之间的所有整数

1.2.2 打印1-10之间的所有整数(包含1和10)

1.2.3 求 1+2+3+4 +...100的和

1.2.4 计算5的阶乘

1.2.5 打印一个3*4的矩形

1.2.6 打印一个5*5的直角三角形

1.2.7 for循环打印一个九九乘法表

2 while 循环

2.1 基本结构

2.2 应用

2.2.1 输出三句话

2.2.2 输出0-10之间的所有整数

2.2.3 求 1+2+3+4 +...100的和

3 do...while 循环

3.1 基本结构

3.2 应用

3.2.1输出三句话

3.2.2 求 1+2+3+4 +...100的和

4 do...while 和while的区别

5 无限循环 (死循环)

6 循环控制语句(break、 continue 、 goto)

6.1 break语句

6.2 continue 语句

6.3 goto 语句(了解)


前言

在前面的课程中,我们已经会使用顺序结构和选择结构了

但是,在实际开发中,只使用这两种结构是不够的,还需要使用到循环结构,也被称为重复结构因为在开发中经常需要处理重复问题,如:

(1)求 1+2+3+4 +...100的和

(2)输出0-50之间所有的偶数

像这样的问题就需要使用到C语言的循环语句

C语言中的循环语句有 for 循环、while循环、do...while循环


1 for循环 1.1 基本结构 for (初始语句;条件表达式;控制条件语句){ 循环体语句 }

条件表达式返回true时循环体不停地进行循环,直到条件表达式返回false时自动退出循环


1.2 应用 1.2.1 输出0-10之间的所有整数

写法一: 

#include <stdio.h> int main(void) { for (int i = 1; i < 10; i++) { printf("i=%d\n", i); } return 0; }

写法二:

#include <stdio.h> int main(void) { int i; for (i = 1; i < 10; i++) { printf("i=%d\n", i); } return 0; }
1.2.2 打印1-10之间的所有整数(包含1和10) #include <stdio.h> int main(void) { for (int i = 0; i <= 10; i++) { printf("i=%d\n", i); } return 0; }
1.2.3 求 1+2+3+4 +...100的和 #include <stdio.h> int main(void) { int sum; for (int i = 1; i <= 100; i++) { sum += i; } printf("sum=%d\n", sum); return 0; }
1.2.4 计算5的阶乘 #include <stdio.h> int main(void) { int sum = 1; for (int i = 1; i <= 5; i++) { sum *= i; } printf("sum=%d\n", sum); return 0; }
1.2.5 打印一个3*4的矩形

写法一: 

#include <stdio.h> int main(void) { for (int i = 1; i <= 12; i++) { printf("*"); } if (i % 4 == 0) { printf("\n"); } return 0; }

写法二:

#include <stdio.h> int main(void) { int line = 3; int num = 4; for (int i = 1; i <= line; i++) { for (int j = 0; j < num; j++) { printf("*"); } printf("\n"); } return 0; }
1.2.6 打印一个5*5的直角三角形 #include <stdio.h> int main(void) { int line = 5; for (int i = 1; i <= line; i++) { for (int j = 0; j < i; j++) { printf("* "); } printf("\n"); } return 0; }
1.2.7 for循环打印一个九九乘法表 #include <stdio.h> int main(void) { for (int i = 1; i <= 9; i++) { for (int j = 1; j <= i; j++) { printf("%dx%d=%d\t", i, j, i * j); } printf("\n"); } return 0; }
2 while 循环 2.1 基本结构 while(表达式) { 语句 }
2.2 应用 2.2.1 输出三句话 #include <stdio.h> int main(void) { int i = 0; while (i < 3) { printf("第%d句话\n", i + 1); i++; } return 0; }
2.2.2 输出0-10之间的所有整数 #include <stdio.h> int main(void) { int i = 1; while (i < 10) { printf("i=%d\n", i); i++; } return 0; }
2.2.3 求 1+2+3+4 +...100的和 #include <stdio.h> int main(void) { int i = 1; int sum = 0; while (i <= 100) { sum += i; i++; } printf("sum=%d", sum); return 0; }
3 do...while 循环 3.1 基本结构 do{ 语句/循环体 }while(表达式/循环条件);

注意:

1、最后的分号不要忘记

2、循环条件中使用的变量需要经过初始化

3、循环体中,应有结束循环的条件,否则会造成死循环

4、do...while和while的功能基本一样,唯一的区别就是第一次循环条件不成立的情况下do...while会先执行一次,while不会执行


3.2 应用 3.2.1输出三句话 #include <stdio.h> int main(void) { int i = 0; do { printf("第%d句话\n", i + 1); i++; } while (i < 3); return 0; }
3.2.2 求 1+2+3+4 +...100的和 #include <stdio.h> int main(void) { int i = 1; int sum = 0; do { sum += i; i++; } while (i <= 100); printf("sum=%d", sum); return 0; }
4 do...while 和while的区别

第一次循环条件不成立的情况下do...while会先执行一次,while不会执行

while 

#include <stdio.h> int main(void) { int i = 10; while (i < 2) { printf("执行"); } return 0; } //不会输出任何内容

do...while 

#include <stdio.h> int main(void) { int j = 10; do { printf("执行"); } while (j < 2); return 0; } //输出:执行 //说明:无论条件是否成立都会执行一次
5 无限循环 (死循环)

while 

#include <stdio.h> int main(void) { while (1) { printf("一直执行\n"); } return 0; }

for 

#include <stdio.h> int main(void) { for (;;) { printf("This loop will run forever.\n"); } return 0; }

如果条件永远不为假,则循环将变成无限循环。

for 循环在传统意义上可用于实现无限循环。

由于构成循环的三个表达式中任何一个都不是必需的,您可以将某些条件表达式留空来构成一个无限循环。


6 循环控制语句(break、 continue 、 goto)

循环控制语句主要用于跳出循环体

6.1 break语句

break用于跳出本次循环,遇到break 循环终止,后面代码也不会执行

break可以用在switch case中 也可以用在 for 循环和 while循环中

示例:

#include <stdio.h> int main(void) { int i = 0; while (i < 10) { if (3 == i) { break; // 结束当前循环 } printf("i=%d\n", i); i++; } return 0; }

在多层循环中,一个break语句只能向外跳出一层

#include <stdio.h> int main(void) { for (int i = 0; i < 5; i++) { printf("外层%d\n", i); for (int j = 0; j < 3; j++) { if (j == 1) { break; } printf("---里层%d\n", j); } } return 0; }

提示:

1、如果在循环中已经执行了break语句,就不会执行循环体中位于break后的语句

2、在多层循环中,一个break语句只能向外跳出一层


 6.2 continue 语句

主要用于跳过当次循环,只能在循环语句中使用

continue可以用在for循环以及 while循环中,但是不建议用在while循环中,不小心容易死循环

#include <stdio.h> int main(void) { int i; for (i = 0; i < 10; i++) { if (3 == i) { continue; // 跳过本次循环 } printf("i=%d\n", i); } return 0; }

continue 也可以用在while中,但是要注意死循环 (下面代码就是死循环)

#include <stdio.h> int main(void) { int i = 0; while (i < 10) { if (3 == i) { continue; // 结束当前循环 } printf("i=%d\n", i); i++; } return 0; }

正确写法

#include <stdio.h> int main(void) { int i = 0; while (i < 10) { if (3 == i) { i++; continue; // 结束当前循环 } printf("i=%d\n", i); i++; } return 0; }
 6.3 goto 语句(了解)

在任何编程语言中如果能使用break或者continue解决的问题,不建议使用goto语句,因为它使程序的控制流难以跟踪,使程序难以理解和难以修改 

但是在某些场合下goto语句还是比较有用的,例如一次跳出两层或多层循环

这种情况使用break是达不到目的的。它只能从最内层循环退出到上一层循环

#include <stdio.h> int main() { printf("你好,中国!\n"); goto end; printf("hello United States!\n"); end: printf("hello world!"); return 0; } #include <stdio.h> int main() { for (int i = 0; i < 4; i++) { for (int j = 0; j < 10; j++) { printf("*"); if (j == 9) { printf("\n"); goto err; } } printf("/n"); } err: printf("error stop..."); return 0; }
标签:

【C语言】第四期——循环语句由讯客互联IT业界栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“【C语言】第四期——循环语句