c语言无法跳出while语句,c语言while语句的用法 该循环永远不会结束 |
您所在的位置:网站首页 › c语言while循环中的continue › c语言无法跳出while语句,c语言while语句的用法 该循环永远不会结束 |
导读:说到语句,我们很多人都知道,有朋友问c语言中while的用法,另外,还有朋友想问c语言的while循环语句,这到底怎么回事呢?事实上c语言while的限制呢,今天小编整理了c语言while语句的用法,希望能帮到大家。 c语言while语句的用法 C语言中while的用法解析如下: 一、1表示true,在bool类型取值false和true,0为false,非0为true(例如-1和2都是true)。程序中,这里1就表示永真,直到循环体内遇到break。 二、while用法演示解析: 1、含义:While 循环会在指定条件为真时循环执行代码块。 2、语法如下:(如果忘记增加条件中所用变量的值,该循环永远不会结束。该可能导致程序崩溃。) 3、实例: 例中的循环将继续运行,只要变量 i 小于 5: 4、执行结果如下: 比较 for 和 while循环: for循环控制变量的初始化和修改都放在语句头部分,书写形式较简洁,且适用于循环次数已知的情况。在循环语句中定义一个局部变量,循环结束后,局部变量就被释放了。 而while循环控制变量的初始化一般放在while语句之前,循环控制变量的修改一般放在循环体中,形式上不如for语句简洁,但它比较适用于循环次数不易预知的情况(用某一条件控制循环)。 两种形式各有优点,但它们是等价的,可以相互转换。 没有 while do 只有 while语句和do while 语句 while( i < 10){ i++; } 在i 小于10 之前一直在while里面循环 do{ i++; }while(i < 10); 和上例一样 唯一一点不同的是:一个是先判断,再循环;一个是先循环再判断;如果上面2个例子,i的初始值都为10,第一个例子就不会执行while语句了,但是第二个却会执行一次. c语言中while 、for、switch、case的用法? 1、while() for都是循环语句,使用格式: while(条件表达式) { } for(表达式1;表达式2;表达式3) { } 2、switch是多分支选择语句,case是switch语句中的一个关键字,用来判断从哪个位置开始执行语句。 格式: switch(表达式) {case 常量表达式: ..... case 常量表达式: ..... case 常量表达式: ..... default: .... } 注意:switch语句结束的条件:碰到break语句,或执行到} C语言的 while中怎么使用break i=0; while(i for_statements ; //多条语句用{}括起来,单条语句可以不用,建议也使用,一:代码清楚,二:便于查错。 其它循环也是这样。 } //说明: //e1:变量初始化区,只执行一次 //e2:循环控制区,每次都要先检查e2表达式的结果是否为真,为真则进入循环区,否则,结束循环 //e3:循环变量变化区,每次执行完for_statements ;则转到这里,执行e3,然后转到e2 例: int i; for( i=0; i while_statements ; //包括循环控制变量 变化 } //说明: //e 循环控制条件,e为真则进入循环区,否则,结束循环 执行完while_statements ;后转到这里继续判断 例: int i; i=0; while( i do_while_statements ; //包括循环控制变量 变化 } while(e); //注意尾部有分号 //说明: //与while()不同的是,这里可以没有循环变量的初始化,先进行循环语句的操作,然后,再判断是否继续进行,所以,这种循环,至少要执行一次do_while_statements ;而前两种,有可能一次都不执行循环语句。 例: int i; do { printf("input number " ); scanf("%d", &i ); //循环控制变量 变化 printf("%d\n", i ); } while ( i int m=1; int n=1; double sum=1; printf(" 计算阶乘\n\n"); printf("请输入一个正整数:"); scanf("%d",&m); if (m>1) { while(n D; } 等于 A; while(B) { D; C; } ABCD是各个位置的代码 有个问题是当D代码中有continue的话,后面的C代码可能不被执行,要注意 我能吐槽这个循环完全没用么? b始终是0 C语言while while(scanf("%d",&a))——只是语法正确,逻辑上有问题。因为scanf("%d",&a)在输入1个正确int型数据时返回1,而输入错误时返回-1,所以输入正确就执行一次循环,等待下一次输入;而输入错误时返回-1也是“真”,而且这个错误数据在输入缓冲区里不被接收,次次判断都是-1,因为形成了死循环。正确写法应该是while(scanf("%d",&a)==1),这样就只有输入正确时为“真”了,避免了输入错误返回-1时为“真”的现象,从而不再会有死循环了…… 『青青星座网』原创文章,未经允许不得转载 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |