c语言之whlie循环语句
- 格式:doc
- 大小:53.00 KB
- 文档页数:10
c语言中的while语句在c语言中,while语句(也称为while循环)不断执行一个语句块,直至指定的循环条件为假。
while语句的一般形式为:while(表达式)语句其中,表达式是循环条件,语句为循环体。
while语句的语义是:判断表达式的值,当值为真(非0数值)时,执行循环体语句。
当表达式的值为假(0),结束循环。
注意:(1)、while 语句中的表达式一般是关系表达式或逻辑表达式,先对其求值,只要表达式的值为真(非0)即执行循环。
(2)执行循环时,若循环体包括一个及以上的语句,则必须使用{ }括起来组成复合语句。
例如:1、计算整数从1加到10的和。
#include<stdio.h>void main(){int i=1,sum=0; //定义变量初始值while(i<=10) //表达式条件判断,i<=10,成立{sum=sum+i; //求和累加计算i=i+1; //变量i增1变化} //两条语句为循环体,故使用{}复合语句printf("%d",sum);}例如:2、计算整数从1加到多少的和大于30。
#include<stdio.h>void main(){int i=1,sum=0; //定义变量初始值while(sum<=30) //表达式条件判断,sum<=30,成立{sum=sum+i; //求和累加计算i=i+1; //变量i增1变化} //两条语句为循环体,故使用{}复合语句printf("%d",--i); //sum条件判执行后,循环变量i又自增一次,得减1,故--i }。
C语⾔之while循环while循环能做什么先来个概念格式,while循环的⼀般形式为:while(表达式){语句块}意思是,先计算“表达式”的值,当值为真(⾮0)时,执⾏“语句块”;执⾏完“语句块”,再次计算表达式的值,如果为真,继续执⾏“语句块”……这个过程会⼀直重复,直到表达式的值为假(0),就退出循环,执⾏ while 后⾯的代码。
看这段话你可能会有很多疑问,不过不重要,只要记住那个格式就⾏,因为上⾯那段话是官⽅阐述。
通常将“表达式”称为循环条件,把“语句块”称为循环体,整个循环的过程就是不停判断循环条件、并执⾏循环体代码的过程。
其实就是符合条件就进⾏⼤括号⾥的内容,不符合条件,⽆视它就好。
看个例⼦,⽤ while 循环计算1加到100的值:#include <stdio.h>int main(){int i=1, sum=0;while(i<=100){sum+=i;i++;}printf("%d\n",sum);return 0;}运⾏结果:5050代码分析:1. 程序运⾏到 while 时,因为 i=1,i<=100 成⽴,所以会执⾏循环体;执⾏结束后 i 的值变为 2,sum 的值变为 1。
2. 接下来会继续判断 i<=100是否成⽴,因为此时 i=2,i<=100 成⽴,所以继续执⾏循环体;执⾏结束后 i 的值变为 3,sum 的值变为3。
3. 重复执⾏步骤 2)。
4. 当循环进⾏到第100次,i 的值变为 101,sum 的值变为5050;因为此时 i<=100 不再成⽴,所以就退出循环,不再执⾏循环体,转⽽执⾏while循环后⾯的代码。
while 循环的整体思路是这样的:设置⼀个带有变量的循环条件,也即⼀个带有变量的表达式;在循环体中额外添加⼀条语句,让它能够改变循环条件中变量的值。
这样,随着循环的不断执⾏,循环条件中变量的值也会不断变化,终有⼀个时刻,循环条件不再成⽴,整个循环就结束了。
c语言while循环语句例子以下是 7 条关于 C 语言 while 循环语句的例子:1. 嘿,你知道吗,就像数数一样,while 循环可厉害啦!比如我们可以用它来计算 1 到 10 的累加和呀。
int sum = 0, i = 1; while (i <= 10) {sum += i; i++;} 哇塞,是不是很直观?2. 哎呀呀,当你想一直做一件事直到某个条件不满足时,while 循环就派上用场咯!好比你在不停地吃糖果,直到糖果吃完就停止。
int candies = 10; while (candies > 0) {printf("吃了一颗糖果\n"); candies--;} 瞧见没?3. 你想想看呀,while 循环不就像是一场游戏,只要条件成立就一直玩下去吗?比如说要打印出所有的奇数。
int num = 1; while (num <= 10) {if (num % 2!= 0) printf("%d ", num); num++;} 这多有趣呀!4. 哇哦,如果把程序比作一场冒险,那 while 循环肯定是英勇的战士啦!例如计算有多少个数能被 3 整除。
int count = 0, value = 1; while (value <= 20) {if (value % 3 == 0) count++; value++;} 厉害吧?5. 嘿,你说 while 循环是不是很神奇呀,就像一个不知疲倦的工人在不停工作。
比如从 100 倒着数到 1。
int num2 = 100; while (num2 >= 1) {printf("%d ", num2); num2--;} 多有意思呀!6. 哎呀,while 循环就好像是一个固执的小孩,不达目的不罢休呢!那来用它打印出 5 次”我爱 C 语言“。
int times = 0; while (times < 5) {printf("我爱 C 语言"); times++;} 是不是很带劲?7. 讲真的,while 循环真的是编程里的好帮手呢!就像一个随时准备行动的伙伴。
C语⾔之while和do-while⼀ while和do-while的简介1). while语句语法:while(表达式){循环体;}循环过程: 1.先判断表达式,是否为真,如果为真跳转到2,否则跳转到32.执⾏循环体,执⾏完毕,跳转到13.跳出循环2). do-while语句语法:do{循环体;}while(表达式);注意:这个while后⾯的⼩括号必须接;循环过程:1.先执⾏循环体,执⾏完毕跳转到22.判断表达式的结果是否为真,如果为真,跳转到1,否则跳转到33.跳出循环3). do-while和while最⼤的区别:do-while⾄少能执⾏1次循环体,但是while可能⼀次都不执⾏⼆ while的注意事项1.避免让循环的条件变成永真或者永假,不然的话可能没意义2.千万不要在while后⾯加;3.while循环后⾯的⼤括号可以省略,如果省略,只能影响离它最近的那句代码,并且,这句代码不可以是声明变量的4.while语句块⾥⾯定义的变量,外⾯不能tips:代码例⼦如下#include <stdio.h>int main(int argc, const char * argv[]) {//whileint i = 1,sum = 0;while(i <= 100){sum += i;i++;}printf("从1加到100的和为:%d\n",sum);// do-whilechar answer;do{printf("表演\n");printf("满意吗?\n");scanf("%c",&answer);}while(answer != 'y');return 0;}。
while c语言程序例子概述在C语言中,while循环是一种重复执行某段代码块的控制结构。
它会根据指定的条件是否满足来决定是否继续循环。
本文将介绍while循环的语法、用法以及提供一些实际的C语言程序例子,以帮助读者更好地理解和运用while循环。
while循环的语法while循环的语法如下:while (condition){// 循环体}其中,condition是一个条件表达式,用于决定是否继续执行循环体。
只要condition的结果为真(非零),循环体就会被重复执行。
当condition的结果为假(0)时,循环终止,程序继续执行后续的代码。
while循环的用途while循环广泛应用于需要重复执行某段代码的情况,例如计算机游戏中的游戏循环、数据处理中的循环操作等。
while循环可以根据具体需求设定不同的条件,使程序能够灵活地执行不同的循环任务。
实例1:计算从1到100的和以下是一个简单的例子,使用while循环计算从1到100的和:#include <stdio.h>int main(){int i = 1;int sum = 0;while (i <= 100){sum += i;i++;}printf("从1到100的和为:%d\n", sum);return 0;}在这个例子中,我们使用while循环来重复执行计算和的操作。
循环的条件是i <= 100,当i的值小于等于100时,循环继续执行。
在每次循环中,我们将i的值累加到sum变量中,并将i的值增加1。
当i的值大于100时,循环终止,程序输出计算结果。
实例2:猜数字游戏下面是一个简单的猜数字游戏的示例程序,使用while循环实现循环猜测直到猜对为止:#include <stdio.h>int main(){int number = 42;int guess;printf("猜数字游戏开始!\n");while (1){printf("请输入一个整数:");scanf("%d", &guess);if (guess == number){printf("恭喜你,猜对了!\n");break;}else if (guess < number){printf("太小了,请继续猜。
c语言while用法在C语言中,while循环是一种常用的控制结构,用于重复执行一段代码,直到满足某个条件为止。
while循环在需要重复执行某个任务时非常有用,例如计算总和、处理一系列数据等。
下面将详细介绍while循环的用法。
一、while循环的基本语法while循环的语法结构如下:```cwhile(条件){//循环体语句}```其中,条件是判断循环是否继续的条件表达式。
如果条件为真,则执行循环体语句,否则跳出循环。
二、while循环的用法1.初始化变量:在循环开始前,可以使用while循环初始化一些需要使用的变量。
例如,可以初始化计数器变量,用于记录循环执行的次数。
```cintcount=0;while(count<10){//循环体语句count++;}```2.计算总和:使用while循环可以方便地计算一组数据的总和。
循环变量初始化为0,每次循环将当前数值加到循环变量上,直到满足终止条件为止。
```cintsum=0;intnums[]={1,2,3,4,5};intn=sizeof(nums)/sizeof(nums[0]);while(count<n){sum+=nums[count];count++;}printf("总和为:%d",sum);```3.处理一系列数据:使用while循环可以方便地处理一系列数据。
例如,可以使用while循环遍历一个数组,并对每个元素执行一些操作。
```cintarr[]={1,2,3,4,5};intn=sizeof(arr)/sizeof(arr[0]);inti;for(i=0;i<n;i++){printf("%d",arr[i]);if(i%2==0){//处理偶数元素的操作}else{//处理奇数元素的操作}}```三、注意事项1.避免无限循环:在使用while循环时,需要确保条件表达式的值最终会变为假,否则会导致无限循环。
while的c语言用法While是C语言中的循环语句之一,它的语法形式如下:```while(条件表达式){//循环语句}```其中,条件表达式的值为true时,循环语句会持续执行,直到条件表达式的值变为false为止。
循环语句可以是任何C语言语句,包括赋值、条件语句、函数调用等等。
在使用while循环时,需要注意以下几个问题:1. 条件表达式的值应该尽量简单,避免在循环中反复计算,否则会拖慢程序的运行速度。
2. 循环语句中应该包含使条件表达式变为false的语句,否则会导致死循环。
3. 在循环语句中应该避免使用break或continue语句,否则会破坏程序的结构,使代码难以维护。
下面是一个简单的例子,演示了while循环的基本用法:```#include <stdio.h>int main(){int i = 0;while(i < 10){printf("%d\n", i);i++;}return 0;}```输出:123456789```这个例子中,我们使用while循环打印了从0到9的整数。
循环的条件表达式是i < 10,当i小于10时,循环中的语句会一直执行,每次输出i的值,并且将i加1。
当i变为10时,循环终止。
除了基本用法外,while循环还可以结合数组、指针等数据结构,实现复杂的算法和数据处理任务。
在实际开发中,while循环是一个非常常用的编程语句,尤其是循环次数不确定的情况下,使用while循环可以极大地提高程序的可读性和可维护性,同时也能节省内存和计算资源的开销。
总之,掌握while循环的使用方法和注意事项,对于C语言程序员来说是非常重要的。
只有不断练习,深入理解循环的本质和运行机制,才能写出高效、健壮、易维护的代码。
while用法C语言以while用法C语言为题,通过本文介绍while用法C语言以及它的运用。
C语言是一种通用的高级编程语言,它拥有良好的结构和面向对象的特性,因此成为了最受欢迎的编程语言之一。
C语言为程序员提供了很多控制语句,而while循环是其中之一。
while循环是C语言的一种重要的控制结构,它可以用来控制一系列的指令或者单指令的执行。
其本质是每次循环,都会评估某一条件,如果条件为真,就执行while循环体内的语句,如果条件为假,就终止循环而跳出。
因此,while循环相当适用于需要一段代码经过多次重复运行的情况。
while语法结构如下:while(表达式){// while循环体}while键字用于声明一个while循环,表达式是一个条件语句,它必须用圆括号括起来,while循环体是一组指令,它可以有0个或多个C语言指令,它们都必须用大括号括起来。
以下是一个用while语句实现求一个数字序列的和的示例:#include<stdio.h>int main(){int n, sum=0;printf(请输入一个整数:scanf(%d &n);int i=1;while (i<=n){sum = sum+i;i++;}printf(1到%d的和为:%dn, sum);return 0;}在上述示例中,首先声明一个sum变量用于存放累加的结果,然后使用scanf函数读入用户输入的一个整数n,为了求1到n的和,再声明一个变量i用于记录while循环的判断条件,其初始值为1,然后使用while循环,每次循环将sum加上i的当前值,然后将i的值加1,循环结束时,sum的值为1到n的和。
可以看出,while循环用于重复执行一系列指令,是编程中经常用到的一种语句,而且在C语言中,它也是一种独立的语句,它可以自成一体,不依赖于除它外的其他控制结构。
总之,while循环是C语言的一种重要的控制结构,它的使用可以使程序结构更加清晰,代码也具有更高的可读性。
【C语⾔】-循环结构-while语句while语句:while循环可实现“当型”循环,即当条件成⽴时,执⾏循环体。
适合⽆法确定循环执⾏次数的情况。
while (表达式){循环语句}注意:表达式为循环控制条件,⼀般是关系表达式或逻辑表达式的形式。
循环控制条件也可以是任意合法的C语⾔表达式,例如:while (1)也是合法的,但注意尽量不要这样⽤,因为可能会导致死循环。
执⾏时,如果程序死循环,可以使⽤ctrl+break组合键结束程序。
循环语句也可以是空语句。
循环体中的空语句可以表⽰循环不做任何操作,可能只是为了消耗CPU的计算控件,也有可能是为了占位暂时使⽤空语句的形式。
多条循环语句必须⽤花括号括起来,以复合语句的形式出现。
例:i = 1;while (i <= 100)putchar('+');i++;程序原意是想输出100个“+”,但由于循环体没有使⽤花括号括起来,所以导致系统认为只有putchar('+');这⼀条语句是循环语句,i++;不属于循环体,所以i的值总是为1。
那么i永远⼩于等于100,所以这个循环将永远不结束,是⼀个死循环。
while语句执⾏过程:注意:循环体有可能⼀次也不执⾏。
循环在下列情况,将推出循环:1)、条件表达式不成⽴(为0)时。
2)、在循环体中遇到break、return等语句时。
避免出现⽆限循环,⼜叫死循环。
为了避免死循环,循环体中应该有使循环趋近于结束的语句。
do while语句:可以实现”直到型“循环。
就是执⾏循环体,直到条件不再成⽴时退出循环。
do while⼀般形式:do{循环语句} while (表达式);do while循环的执⾏流程:。
c语言中do while的用法C语言中,do-while循环语句是一种先执行循环体再判断循环条件的循环结构。
其基本语法格式如下:```do {// 循环体语句} while (循环条件);```其中,`do`关键字表示开始一个do-while循环,后面跟着一对花括号`{}`,用来包含需要重复执行的一组语句,即“循环体”;`while`关键字表示循环条件,后面跟着一个表达式或变量名,用来控制循环是否继续执行。
使用do-while循环时需要注意以下几点:1. 循环体至少会被执行一次,因为它在判断之前已经被执行了一次;2. 循环条件必须是一个能够返回布尔值的表达式或变量;3. 循环体内部必须改变控制循环条件的变量或表达式的值,否则会造成死循环;4. do-while循环通常用于需要先执行一次操作后再根据结果判断是否继续重复操作的情况。
下面是一个简单的例子,演示了如何使用do-while循环计算1到10的和:```c#include <stdio.h>int main() {int i = 1, sum = 0;do {sum += i;i++;} while (i <= 10);printf("1到10的和为:%d", sum);return 0;}```在上述代码中,我们使用了一个变量`i`来控制循环次数,另一个变量`sum`用来累加每次循环的结果。
在do-while循环体内部,我们先将当前的`i`值加到`sum`中,然后再将`i`自增1。
当循环条件不满足时,即`i > 10`时,程序跳出循环并输出最终的结果。
除了基本语法外,do-while循环还可以与其他控制语句结合使用,如break、continue等。
例如,在上述例子中如果我们想要在累加到5时停止计算,则可以在循环体内部添加一个判断语句:```c#include <stdio.h>int main() {int i = 1, sum = 0;do {if (i > 5) {break; // 跳出循环}sum += i;i++;} while (i <= 10);printf("1到5的和为:%d", sum);return 0;}```在上述代码中,我们添加了一个if语句用来判断当前的`i`是否大于5。
c语言的循环语句基本语法C语言中的循环语句是用来重复执行一段代码块的语句。
循环语句包括for循环、while循环和do-while循环。
下面我将逐个介绍它们的基本语法和用法。
1. for循环:for循环是C语言中最常用的循环语句之一,它的语法结构如下:```for (初始化表达式; 循环条件表达式; 更新表达式) {// 循环体代码}```其中,初始化表达式用于初始化循环变量,循环条件表达式用于判断是否继续执行循环,更新表达式用于更新循环变量的值。
循环体是被重复执行的代码块。
2. while循环:while循环的语法结构如下:```while (循环条件表达式) {// 循环体代码}```在执行while循环之前,首先判断循环条件表达式的值是否为真,如果为真,则执行循环体的代码,然后再次判断循环条件,如果仍然为真,则继续执行循环体,直到循环条件为假时退出循环。
3. do-while循环:do-while循环的语法结构如下:```do {// 循环体代码} while (循环条件表达式);```do-while循环先执行循环体的代码,然后再判断循环条件表达式的值是否为真,如果为真,则继续执行循环体,直到循环条件为假时退出循环。
do-while循环至少执行一次循环体的代码。
4. 循环控制语句:在循环过程中,我们可以使用循环控制语句来控制循环的执行流程。
常用的循环控制语句有break和continue。
- break语句用于立即终止循环,并跳出循环体,程序会继续执行循环后的代码。
- continue语句用于跳过当前循环的剩余代码,并继续执行下一次循环。
5. 嵌套循环:在C语言中,我们可以在一个循环语句中嵌套另一个循环语句,形成嵌套循环。
嵌套循环的语法结构如下:```for (int i = 0; i < n; i++) {for (int j = 0; j < m; j++) {// 嵌套循环体代码}}```嵌套循环可以用来处理多维数组或进行复杂的循环逻辑。
c语言中的while循环语句一、while循环语句的基本语法在C语言中,while循环语句的基本语法如下:```while (条件表达式) {循环体语句;}```其中,条件表达式是一个布尔表达式,当条件表达式为真(非零)时,循环体语句会被执行;当条件表达式为假(零)时,循环终止,程序继续执行后面的代码。
二、while循环的应用场景while循环适用于需要重复执行某段代码,并在每次执行之前判断一个条件是否满足的情况。
下面我将列举10个常见的应用场景。
1. 输入验证在用户输入数据时,往往需要对输入进行验证,确保输入的合法性。
例如,要求用户输入一个大于0的整数,可以使用while循环进行输入验证,直到用户输入的数满足条件为止。
```cint num;printf("请输入一个大于0的整数:");scanf("%d", &num);while (num <= 0) {printf("输入错误,请重新输入:");scanf("%d", &num);}```2. 数字求和有时候需要对一连串数字进行求和操作,可以使用while循环来实现。
下面是一个求1到100的和的例子。
```cint i = 1;int sum = 0;while (i <= 100) {sum += i;i++;}printf("1到100的和为:%d\n", sum);```3. 数字猜测游戏在数字猜测游戏中,程序会随机生成一个数字,然后要求用户猜测这个数字是多少。
用户每猜测一次,程序会根据猜测结果给出相应的提示,直到用户猜对为止。
```c#include <stdio.h>#include <stdlib.h>#include <time.h>int main() {srand(time(NULL));int target = rand() % 100 + 1; // 生成1到100之间的随机数int guess;printf("猜数字游戏开始!\n");printf("请输入一个1到100之间的整数:");scanf("%d", &guess);while (guess != target) {if (guess < target) {printf("猜小了,请继续猜:");} else {printf("猜大了,请继续猜:");}scanf("%d", &guess);}printf("恭喜你猜对了,答案就是%d!\n", target);return 0;}```4. 判断素数判断一个数是否为素数,可以使用while循环来实现。
循环语句c语言
循环语句是一种控制流语句,用于重复执行一系列语句。
在C语言中,常用的循环语句有for循环、while循环和do-while循环。
1. for循环:
for循环具有循环变量的初始化、循环条件的判断和循环变量的更新三个部分,形式如下:
```
for (初始化;循环条件;更新) {
//需要重复执行的代码
}
```
具体执行过程为:首先进行初始化,然后检查循环条件,如果条件为真,则执行循环体中的代码,然后更新循环变量,再次检查循环条件,重复上述步骤,直到循环条件为假时结束循环。
2. while循环:
while循环只有循环条件一部分,形式如下:
```
while (循环条件) {
//需要重复执行的代码
}
```
执行过程为:首先检查循环条件,如果为真,则执行循环体中的代码,然后再次检查循环条件,重复上述步骤,直到循环条件为假时结束循环。
3. do-while循环:
do-while循环和while循环相似,只是在循环体后面有一个循环条件的判断,形式如下:
```
do {
//需要重复执行的代码
} while (循环条件);
```
执行过程为:首先执行循环体中的代码,然后在循环条件为真时再次执行循环体中的代码,重复上述步骤,直到循环条件为假时结束循环。
循环语句可以根据需要灵活地控制循环的次数或循环的条件,还可以结合条件语句和跳转语句来实现更复杂的控制逻辑。
同时,可以在循环体中使用break语句提前结束循环,或使用continue语句跳过当前循环的剩余代码。
循环语句在编写程序时经常使用,可以提高代码的复用性和效率。
c语言循环语句格式
for循环的格式为:for(起始条件;循环条件;循环后操作){循环体},其中起始条件是在循环开始前执行一次的语句,循环条件是判断是否继续循环的条件语句,循环后操作是每次循环后执行的语句,循环体是需要重复执行的代码块。
while循环的格式为:while (循环条件) { 循环体 },其中循环条件是判断是否继续循环的条件语句,循环体是需要重复执行的代码块。
在执行while循环前,必须保证循环条件为真,否则循环体不会被执行。
do-while循环的格式为:do { 循环体 } while (循环条件),其中循环体是需要重复执行的代码块,循环条件是判断是否继续循环的条件语句。
与while循环不同的是,do-while循环先执行一次循环体,然后再判断循环条件是否为真,如果为真则继续执行循环体,否则跳出循环。
以上是C语言循环语句的基本格式,程序员可以根据实际需要进行组合和修改,从而实现复杂的程序逻辑。
- 1 -。
C语言while循环语句用法举例一、概述在C语言中,while循环是一种常用的循环语句,其语法简单而灵活,使用范围广泛,能够满足各种不同的循环需求。
通过不断地判断条件是否成立,while循环可以重复执行特定的代码块,直到条件不再满足为止。
二、基本语法结构在C语言中,while循环的基本语法结构如下:```while (条件) {循环体;}```其中,条件是一个逻辑表达式,如果条件成立(即返回值为真),则执行循环体中的代码;否则,跳过循环体,执行while循环后面的语句。
三、举例说明接下来,我们通过几个简单而典型的例子来展示while循环的基本用法,帮助读者更深入地理解。
1. 计算1到100的和```c#include <stdio.h>int main() {int i = 1;int sum = 0;while (i <= 100) {sum += i;i++;}printf("1到100的和为:%d\n", sum);return 0;}```在这个例子中,我们使用while循环来计算1到100的和。
通过不断递增的i值和累加的sum值,实现了对从1到100的所有数求和的功能。
2. 猜数字游戏```c#include <stdio.h>int main() {int target = 50;int guess = 0;printf("猜一个0到100之间的数字:");while (guess != target) {scanf("%d", &guess);if (guess < target) {printf("太小了,再试试:");} else if (guess > target) {printf("太大了,再试试:");} else {printf("恭喜你猜对了!\n");}}return 0;}```在这个例子中,我们利用while循环来实现一个简单的猜数字游戏。
while循环语句c语言
在 C 语言中,while 循环是一种常见的循环结构,用于重复执行一段代码,直到给定条件不再满足。
while 循环的基本语法如下:while (condition) {
// 在满足条件的情况下执行的代码块
}
condition 是一个布尔表达式,通常是一个比较操作,用于确定是否继续执行循环体中的代码。
只要 condition 为真(非零),循环将继续执行。
以下是一个简单的示例,演示了 while 循环的使用,用于计算并打印数字 1 到 5 的平方:
#include <stdio.h>
int main() {
int i = 1;
while (i <= 5) {
int square = i * i;
printf("The square of %d is %d\n", i, square);
i++; // 增加 i 的值,以便下次循环计算下一个数字的平方
}
return 0;
}
上述代码中,while 循环首先检查 i 是否小于或等于 5。
如果是,它执行循环体内的代码,计算并打印 i 的平方,然后递增 i 的值,以便进行下一次迭代。
这个过程将重复执行,直到 i 大于 5 时,循环停止。
while 循环非常灵活,你可以根据需要在循环体内执行各种操作。
需要谨慎确保循环条件最终会变为假,以避免无限循环。
如果条件始终为真,循环将永远不会结束。
本来说好讲讲除了scanf和printf以外例如gets、puts,petchar、putchar等输入输出函数。
但准备了半天东西发现牵扯的知识太多,并且很多东西我自己也没有弄清楚。
所以啦,我就打算先讲讲程序中最常见的两种循环语句,分别是while 循环语句和for循环语句。
这个while啊,我们都学过英语都知道有“当....的时候”的意思。
对,学c语言时就当这个意思就行。
这个例题也没找到什么好的,就搬来了《c程序设计语言》上的例子,如果看过来就当是复习吧。
请看题:使用公式℃=(5/9)(℉-32),打印下列华氏温度与摄氏温度的对照表。
0 -1720 -640 460 1580 26100 37120 48140 60160 71180 82200 93220 104240 115260 126280 137300 148我们的答案如下#include<stdio.h>/*当fahr=0,20,40,...,300时,打印华氏温度与摄氏温度对照表*/main(){int fahr,celsius;int lower,upper,step;lower=0; /*华氏温度下限*/upper=300;/*华氏温度上限*/step=20;/*步长*/fahr=lower;while(fahr<=upper){celsius=5*(fahr-32)/9;printf("%d\t%d\n",fahr,celsius);fahr=fahr+step;}}值得高兴的是,我们又遇到了很多没有见过的东西,总是能见到新东西总是让人感到高兴的。
先是fahr、celsius等几个没见过的单词。
这个其实不用说也都知道是啥东西,也就是几个可能原来不认识的变量名,并不是函数。
接下来是/**/格式的几个句子/*当fahr=0,20,40,...,300时,打印华氏温度与摄氏温度对照表*//*华氏温度下限*//*华氏温度上限*//*步长*/这种在/*和*/之间加东西的东西叫做注释。
和它的名字一样,仅作为注释,在程序运行过程就会被编译器忽略,因为编译器只对文章正文感兴趣。
这东西存在的主要价值基本上就是帮助看你程序的人或在你检查自己程序时可以快速理解你写的这一部分是干啥用的。
因此注释在每个语句的句尾都可以加,在任何可以跳格也就是可以打空格或制表符的地方也都可以加。
剩下我们可能看不懂的大概也就剩while的循环语句了:while(fahr<=upper){celsius=5*(fahr-32)/9;printf("%d\t%d\n",fahr,celsius);fahr=fahr+step;}首先我们要注意的是,有没有发现while循环语句的第一句括号后面没有分号?并不是我忘了打,因为这里确实没有分号也能有分号。
具体有了会怎样可以自己去试一试。
当然我是个喜欢啰里啰唆的人,所以还是想啰嗦两句为啥不能加分号。
原因也很简单,因为我们都知道,分号在c语言中代表一个语句的结束,在这里要注意是一个语句的结束。
而对于循环语句来说,构成它的至少应该有两部分:前面的判断条件和后面的循环体(在这里指后面花括号及以内的内容),因此我们要把前面的条件判定部分和后面的循环体当成整体来看待。
也就是说它们共同构成了循环语句这一个语句。
如果你在while(fahr<=upper)后面加上了分号,再通过运行的结果对照程序进行思考,一定可以更深刻地理解我这句话的含义。
好吧又扯出两个词,条件判断部分和循环体。
条件判断部分就是while后面圆括号即里面的内容啦,也有的人叫条件部分。
我为了省事在下面就也叫它条件部分啦。
循环体可以由两部分组成,花括号和花括号里面的语句。
在这里说可以是因为如果循环语句只有一个语句的话(马上我们就会遇到),就没有必要加花括号了。
直接接在while那句的下面就行了。
好像就没啥知识了吧,循环语句的循环过程主要还是要自己去理解,至于这个while循环语句的执行方式是这样的:首先编译器在读取while函数后(忘了说这玩意还有个名字叫条件函数),会先测试它后面圆括号中的条件部分,如果条件为真(在这里是fahr<=upper),则执行循环体;执行完循环体后,因为是while函数,编译器会返回来再次测试条件部分。
直到某一次当编译器测试条件部分结果为假时(这里体现为fahr>upper),编译器就会结束while函数的循环,然后按正常顺序去进行循环语句后面语句的运行。
在本程序中因为while的循环语句是程序的最后一个语句,所以在循环语句结束后整个程序也就执行终止啦。
好吧这个程序还有两个问题。
我们一个个的讲。
第一个就是printf语句中\t和\n的作用。
(不要跟我说不认识这两个东西啦我以前一定是说过的。
)在这个程序里这两个符号是不能省去的。
\t用来保持华氏温度和摄氏温度之间的距离,\n用来实现必要的跳行。
如果在这里还不用这两个东西,相信我,运行结果出来后你会后悔的。
第二个是摄氏温度的计算方式。
公式给的明明是℃=(5/9)(℉-32),为啥我们非要写成蹩脚的celsius=5*(fahr-32)/9;?你非要写成celsius=(5/9)*(fahr-32);我也不反对,系统也不会报错,但你运算出来的结果是不正确滴。
因为先前我们定义的fahr和celsius都是整数形式,而在c语言中整型除法的计算规则,它们相除后是要舍位的,而5/9的舍位结果为0。
因此如果我们如果想把摄氏度的运算写成celsius=(5/9)*(fahr-32);的话,就需要把程序改成#include<stdio.h>/*当fahr=0,20,40,...,300时,打印华氏温度与摄氏温度对照表*/main(){float fahr,celsius;float lower,upper,step;lower=0; /*华氏温度下限*/upper=300;/*华氏温度上限*/step=20;/*步长*/fahr=lower;while(fahr<=upper){celsius=(5.0/9.0)*(fahr-32.0);printf("%.2f\t%.2f\n",fahr,celsius);fahr=fahr+step;}}(这个程序设置的是保留了两位小数)这样我们就可以以一种更自然的方式来书写运算语句了,并且我们可以得到转化后更高精确度。
但严格地讲,我们依然没有把摄氏度的运算写成celsius=(5/9)*(fahr-32);的形式。
因为在这个运算语句中必须至少有一个数字是小数形式的,否则就会出现0.00的输出出现。
在这里我为什么说“至少一个数是小数形式”?是因为在一个运算语句中,如果所有操作数(请允许我使用这个专用性强一点的词,其实我心里都管这种数叫被操作数)均为整数,则执行整型运算。
但是,如果某个运算语句中既存在浮点型操作数和整型操作数,则在运算时整型操作数也都会被转换成浮点型的操作数参与运算。
就比如这个程序中的celsius=(5.0/9.0)*(fahr-32.0);运算语句是可以改成celsius=(5.0/9)*(fahr-32);的。
因为后面有printf("%.2f\t%.2f\n",fahr,celsius);,结果依然是以保留两位小数的形式输出的。
但由此也引发了我的好奇如果把我们最早编写的程序改成这样会怎样呢?#include<stdio.h>main(){int fahr,celsius;int lower,upper,step;lower=0;upper=300;step=20;fahr=lower;while(fahr<=upper){celsius=(5.0/9.0)*(fahr-32.0); printf("%d\t%d\n",fahr,celsius); fahr=fahr+step;}}或者这样#include<stdio.h>main(){int fahr,celsius;int lower,upper,step;lower=0;upper=300;step=20;fahr=lower;while(fahr<=upper){celsius=(5.0/9)*(fahr-32); printf("%d\t%d\n",fahr,celsius); fahr=fahr+step;}}这两个程序和我们写的第一个程序唯一的区别就是我在写运算语句时套用了浮点式时运算语句的书写原则。
令人高兴的是输出结果和我们刚开始写的第一个程序是相同的。
(我这里用的编译器是codeblocks10.05而非VC++6.0,所以考试报错了不要怪我。
)。
这也就给了我们另外一种以一种更自然的方式来书写运算语句的途径。
但最后要提起注意的是,我们在定义变量(即int fahr,celsius;)和格式化输出变量的值(即printf("%d\t%d\n",fahr,celsius);)时,所定义变量的类型(指int)和格式输出变量所输出的格式(指%d)还是要一一对应的。
int要和%d对应出现,float和%f要对应出现,如果对应关系没有一致系统不会报错但运行结果会是错误的。
while循环语句就算是讲完了,下次我们会说一说和while 循环语句作用相同的for循环语句。
10.5。