当前位置:首页 » 《关于电脑》 » 正文

玩转C语言for循环语句

3 人参与  2024年10月03日 19:21  分类 : 《关于电脑》  评论

点击全文阅读


前言与概述:

在C语言中,for循环语句是较为常用的循环语句,本文章主要介绍for循环的基本语法结构、continue语句和break语句在for循环中的使用、for循环的三种变体,最后通过一道面试题来巩固前面所学知识。

for循环基本语法结构

基本语法结构

for(表达式1;表达式2;表达式3)

{

        循环语句;

}

表达式1:初始值,表达式1用于初始化循环变量的值,该表达式只执行一次。

表达式2:循环条件,表达式2用于定义循环条件,当循环条件成立时,执行循环语句块,当循环条件不成立,退出循环。

表达式3:调整,表达式3用于调整循环变量的值,当每次循环语句结束后,都会进入表达式3对循环变量的值进行调整。

图解for循环表达式

实践演练出真知

例题:请使用for循环输出1-10所有的整数

分析:例题要求输出1-10所有的整数,既然是整数,我们就要定义int类型的循环变量,该变量的值就是要输出的值。输出第一个值是1,那么可以初始化循环变量值为1。输出最大的值是10,那么循环条件就是循环变量的值<=10,输出1后输出2,那么循环变量的值每次都要加一。循环语句很简单,就是输出循环变量的值。

示例代码:

//输出1-10所有的整数#include <stdio.h>int main(){int i = 0;for (i = 1; i <= 10; i++){printf("%d ", i);}return 0;}

运行结果:

 

 

for循环使用建议

Part1:不建议在for循环语句块内修改循环变量的值,防止出现无限循环。

错误代码示例:

 

 

分析:由于笔者在循环语句块内修改了循环变量i的值,导致程序不停输出6,陷入死循环。这是因为:for循环初始循环变量i的值为1,循环条件满足,输出1。将变量i的值变成5,经过i++的调整,变量i的值为6,满足循环条件,输出6,又将变量i的值变成5,经过i++的调整,变量i的值又为6,再次满足循环条件,输出6。以此类推,循环条件始终是满足的,故程序陷入无限循环。

Part2:建议将for循环循环变量的取值设置为前闭后开区间,这样更符合逻辑,也显得代码更高级。

区间:

break和continue在for循环中的使用

break语句用于永久终止循环

在for循环语句中,如果使用break语句,会直接终止剩余所有的循环语句,并离开循环。

例题:输出1-10所有的整数,但输出第四个数后便不再输出

分析:题目要求输出1-10所有的整数,所以我们可以使用上个代码。但是,题目还要求输出第四个数后便不再输出,于是,当我们输出第四个数(循环变量的值为4)后,使用break语句终止循环。

示例代码:

//break语句#include <stdio.h>int main(){int i = 0;for (i = 1; i < 11; i++){printf("%d ", i);if (i == 4){break;}}return 0;}

运行结果:

 

 

continue语句用于终止本次循环剩余部分

在for循环中,continue语句用于终止本次循环的剩余语句,并且返回到表达式3,对循环变量进行调整。

例题:如果将上个代码的break语句改为continue语句,输出结果是什么呢?

示例代码:

//continue语句#include <stdio.h>int main(){int i = 0;for (i = 1; i < 11; i++){if (i == 5){continue;}printf("%d ", i);}return 0;}

运行结果:

 

 

分析:从控制台中,我们可以看到只有5没有输出,这正是continue语句发挥作用。当变量i的值等于5时,进入continue语句,会终止当前剩余的循环语句,即不输出5,然后返回到表达式3,调整变量i的值,变量i的值加1变成6,if条件语句不成立,输出6。

for循环变体

无循环条件的for循环

在for循环中,圆括号内的3个表达式都可以省略。如果没有设置循环条件,那么默认循环条件恒成立,程序就会陷入无限循环。

示例代码:

//无循环条件for循环#include <stdio.h>int main(){int i = 0;for (i = 1; ; i++){printf("haha! ");}return 0;}

 运行结果:

 

嵌套for循环

for循环支持在for循环语句块内部设置for循环,当外部的for循环条件成立后,如果内部的for循环成立,会进入内部for循环,当内部的for循环执行完毕后,会回到外部的for循环,如果外部for循环成立,会再次进入内部的for循环。依此类推,直到外部for循环条件不成立。

例题:打印九九乘法表

示例代码:

//打印九九乘法表#include <stdio.h>int main(){int i, j;int sum = 0;for (i = 1; i < 10; i++){for (j = 1; j < i + 1; j++){sum = i * j;printf("%d * %d = %d", i, j, sum);if (sum > 9){printf("  ");}else {printf("   ");}if (i == j){printf("\n");}}}return 0;}

运行结果:

 

多循环变量表达式

for循环支持圆括号内3个表达式都可以有多个循环变量。

示例代码:

//多个循环变量#include <stdio.h>int main(){int i, j;for (i = 0, j = 0; i < 3 && j < 5; i++, j++){printf("good!\n");}return 0;}

分析:在本代码中,定义两个循环变量,并由这两个循环变量共同控制循环条件,&&是逻辑与,左右两个条件必须同时满足,循环条件才成立。||是逻辑或,左右两个条件只要满足一个条件,循环条件就成立。每次for循环都输出“good!”,当第三次for循环结束后,循环变量i的值调整为3,循环条件不成立,循环结束。

练习题:

下列代码一共循环多少次?

//面试题#include <stdio.h>int main(){int x = 0;int y = 0;for (x = 0, y = 0; x = 0; x++, y++){x++;}return 0;}

答案:一共循环0次,for循环循环条件是“x = 0;”,“=”是赋值符不是相等符。将0赋予变量x,变量x的值是0,循环条件不成立。 


点击全文阅读


本文链接:http://zhangshiyu.com/post/167467.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1