前言:
前一段时间发表的<【“天才”必经之路】>文章非常热门,虽然我知道它会是一篇成功的文章,但,它的火爆程度还是超出了我的预期。前几日,我写了这个系列的第二篇文章,文章中的故事场景和语法也更加细腻,更能突出主题,但,这也是我删除它的原因。这篇文章写得过于理想化,可能会导致读者朋友无法合理安排时间,比如无法做到“劳逸结合”。我们的生活虽然需要努力,但也要合理休息,调整身体和心理上的放松。这一系列,近期不再出新的作品了,等我有了新的思维突破,能考虑出更多因素的情况下,再写这类型的文章。
正文:
上一篇 <一起学习C语言:C语言循环结构(一)> 中,我们了解了循环结构和for语法的应用场景。本篇文章中,我们分析while语句,并通过几个示例分析continue和do…while语句的使用方式。
章节预览:
2. while语句
2.1 while语句用法
2.2 continue用法
2.3 do…while语句用法
目录预览
章节内容:
2. while语句
while语句是基本循环结构,也是由顶部驱动循环执行,一般用作条件式运算。条件式运算一般按照条件逻辑值执行,比如:a > 0,a < 100,a(a为“真”)等等。
while语句形式:
while(表达式) { //形式一
语句块
}
while语句形式:
while(表达式) //形式二
{
语句块
}
【例5.4】 计算1-100之间的相加结果。
int a = 0;
int sum = 0;
while (100 > a) {
sum += ++a;
}
示例结果:
sum等于5050。
示例分析:
表达式 “100 > a”,表示100大于a,如果结果为“真”,执行while语句块内语句,否则跳出while结构并执行while结构之后的语句。
2.1 while语句用法
while语句表达式用法与if语句表达式相似,同样可以是任意表达式。while语句与if语句不同之处在于——while语句可以循环执行,而if语句只能一次执行。
【例5.5】 使用随机数生成10以内的数,随机数为2时停止循环。
bool a = true;
int N = 0;
srand((unsigned)time(NULL));
N = rand() % 10;
while (a) {
if (N == 2)
a = false;
else
N = rand() % 10;
}
示例分析:
1. 表达式 “a”,如果结果为“真”,执行while语句块内语句。
2. if语句表达式“N == 2”,如果结果为“真”,a赋值为false,否则N继续获取一个10以内的数。
3. 跳转到while顶部继续判断表达式“a”,如果结果为“假”, 跳出while结构并执行while结构之后的语句,否则按照1.、2.顺序,继续循环执行。
上述示例中,通过while结构结合if语句可以容易表达出设计思路。接下来只使用while结构设计,简化循环结构:
int N = 0;
srand((unsigned)time(NULL));
N = rand() % 10;
while (N != 2) {
N = rand() % 10;
}
示例分析:
1. 表达式 “N != 2”,如果结果为“真”,执行语句块内容,N继续获取一个10以内的数,然后跳转到while顶部,继续按这种顺序,循环执行。
2. 表达式 “N != 2”,如果结果为“假”, 跳出while结构并执行while结构之后的语句。
2.2 continue用法
部分情况下,循环结构语句块内的条件满足时,可以通过continue语句停止本次执行,进行下一次循环。
【例5.6】 计算1-100之间的相加结果,并输出结果信息。
int i = 0;
int sum = 0;
while (100 >= i) {
if (100 > i++) {
sum += i;
continue;
}
printf(“sum等于%d.”, sum);
}
示例结果:
sum等于5050。
示例分析:
1. 表达式 “100 >= i”,表示100大于等于i,如果结果为“真”,执行while语句块内语句,否则跳出while结构并执行while结构之后的语句。
2. if语句表达式“100 > i++”,如果结果为“真”,sum加等于i的值,并且通过continue(5)语句,停止本次执行,进行下一次循环。
3. 输出sum结果信息。
(5):continue只能用在循环结构中,它即可以在语句块内的分支语句中使用,也可以单独在语句块内使用。
合理使用continue语句,即可以提高循环结构的执行效率,也可以简化循环结构的语句块代码。
2.3 do…while语句用法
do…while语句属于底部驱动循环结构,一般用作条件式运算。do…while至少执行一次语句结构。
do…while语句形式:
do { //形式一
语句块
} while(表达式);
do…while语句形式:
do //形式二
{
语句块
} while(表达式);
【例5.7】 计算1-100之间的相加结果,并输出结果信息。
int i = 0;
int sum = 0;
do
{
if (100 > i++) {
sum += i;
continue;
}
printf(“sum等于%d.”, sum);
}while (100 >= i);
示例结果:
sum等于5050。
示例分析:
首先执行语句块内语句,然后判断表达式“100 >= i”,表示100大于等于i,如果结果为“真”,继续执行do…while语句块内语句,否则跳出do…while结构并执行do…while结构之后的语句。
目录预览
<一起学习C语言:C语言发展历程以及定制学习计划>
<一起学习C语言:初步进入编程世界(一)>
<一起学习C语言:初步进入编程世界(二)>
<一起学习C语言:初步进入编程世界(三)>
<一起学习C语言:C语言数据类型(一)>
<一起学习C语言:C语言数据类型(二)>
<一起学习C语言:C语言数据类型(三)>
<一起学习C语言:C语言基本语法(一)>
<一起学习C语言:C语言基本语法(二)>
<一起学习C语言:C语言基本语法(三)>
<一起学习C语言:C语言基本语法(四)>
<一起学习C语言:C语言基本语法(五)>
<一起学习C语言:C语言循环结构(一)>