-
C语言基础知识:While 后面可以没有花括号{}?可以同时有{}和;?
2019-02-06 23:30:29” , 也就是说,当有花括号 {} 结尾可不需要分号, 当然你加了不也会出错,但不要while(); 【总结】在C语言中,用;和{}的作用都是一个:用于语句分隔,告诉编译器当语句遇到;或者{}中的 “}”时,说明执行该语句...先说结论:正确且习惯用while(){}
可以没有{},此时于while()后第一个分号 “;” 前面的语句就是循环体。
可以同时有{}和分号“;” , 也就是说,当有花括号 {} 结尾可不需要分号, 当然你加了不也会出错,但不要while();
【总结】在C语言中,用;和{}的作用都是一个:用于语句分隔,告诉编译器当语句遇到;或者{}中的 “}”时,说明执行该语句结束。所以说有点二选一的感觉,但让如果两个都同时用也不会出错(注不要while(); 不要for(); ,这些C语言编译器是允许的,但是实际上这样做没意义,这样做相当于循环体为空了,什么也没干)
while(){} //有 {} 结尾可不需要分号, 当然你加了不也会出错,但不要while();。 但是要注意,如果是do while结构,在while()后面必须有; do{}while(); //要分号结束
【注意】:在C语言中 ; 分号 是可以看成表示执行语句结束
分析:第一个例子循环体在while的前面,先执行的是循环体,再判断条件。而条件是不能用花括号{}括起来的的,在C语言中每段程序之间都要用分号隔开的,所以就要分号; 第二个列子是先判断条件,再执行循环体,而循环体是用花括号{}包起来的,而在C语言中花括号和分号不能同时在一起,所以就没有分号;就相当于if(){}语句一样。
1、当while在复合语句中没有使用花括号{}时
while() 语句a; 语句b; 语句c; 当while在复合语句中没有使用花括号时 循环体只有语句a, 相当于while()后第一个分号前面的语句就是循环体。 举例子: int main() { int i=0; int n = 3;//表示从键盘输入的整数 while(i<=n)//n是几下面的循环体就执行几次 printf("%d",i); //打印出来的结果是:全是0 i=i+1; //结论:printf("%d",i)为循环体,无法执行到i=i+1,由于i=0不变,这是一个死循环 }
2、在上述例子基础上,在while(i<=n)后面加分号;
int main() { int i=0; int n = 3;//表示从键盘输入的整数 while(i<=n); //编译可以通过,但是执行时不打印任何信息 printf("%d",i); i=i+1; } //上面分析得到,while()后第一个分号前面的语句就是循环体。本例中,while()后第一个分号前面的语句是空语句,相当于什么也没有执行,所以执行时没打印出信息
3、正确写法while(){}
//while后有{}号 int main() { int i=0; int n = 3;//表示从键盘输入的整数 while(i<=n)//n是几下面的循环体就执行几次 { printf("%d\n",i); //打印出来的结果是:0123 i=i+1; }; //有 {} 结尾可不需要分号, 当然你加了不也会出错 }
-
While 循环语句 和do while循环语句
2018-11-01 19:54:02While循环语句的格式 while(循环条件){ ...注意:循环条件后面不能加分号,不然程序会进入死循环 编写个1加到5的案例 {}
如果循环条件的值为true,那么就执行大括号里面的内容,否则不执行大括号里面的内容(如果大括号外面还有内容的话就直接执行大括号外面的内容)
注意:循环条件后面不能加分号,不然程序会进入死循环
编写个1加到5的案例do while循环语句的格式
do{
语句
}while(循环条件)注意事项:
do-while循环至少执行一次
循环条件后的分号不能丢
同样写个1加到5的案例
两者的区别
do-while语句是一种后测试循环语句,即只有在循环体中的代码执行之后,才会测试出口条件。其实就是,代码在刚开始执行的时候,都是要先走一遍do循环体内的代码,然后在与while里面的条件进行判断,成立循环就一直继续下去,不成立就跳出循环。循环体内代码至少被执行一次。while语句是属于前测试循环语句,也就是说,在循环体内的代码被执行之前,就会对出口条件求值。其实就是先与while里面的条件进行判断,成立就走循环体内的代码,不成立就不走循环体内代码。循环体内的代码有可能永远不会执行。
-
JS—do...while循环
2019-09-15 21:21:311、while后面的分号不能忘记写。 2、循环条件中使用的变量需要经过初始化。 3、循环体中,应有结束循环的条件,否则会造成死循环。 例:打印出1加到100的和 var i = 0; var num = 0; do{ num = num + i; i++; ...格式:
do{ 循环语句; }while(表达式);
注:
1、while后面的分号不能忘记写。
2、循环条件中使用的变量需要经过初始化。
3、循环体中,应有结束循环的条件,否则会造成死循环。
例:打印出1加到100的和var i = 0; var num = 0; do{ num = num + i; i++; }while(i <= 100); document.write(num)
do...while
循环和while
循环的区别:
while
循环是先判断表达式的真假,然后再执行循环语句,所有如果表达式为假的话,就不会执行循环语句。
do...while
循环是先执行一次循环语句,然后再去判断一次表达式的真假。所以即使表达式为假,也会执行一次循环语句。while
循环用的情况多,如果while
处理逻辑比较别扭时,就用do...while
循环。 -
宏定义中的do{...}while(0)
2017-08-29 14:55:57do while(0)不是循环,只执行一遍!他的目的和直接加大括号一样。...注意在宏定义中,while(0)后面不加分号。 此用法的功能: 1.宏展开时不至于出错,涉及分号的问题; #define DO_SOMETHING {int tido while(0)不是循环,只执行一遍!他的目的和直接加大括号一样。用while只不过是使这个宏可以用于if等分支里。他显然比{}要好用了,它可以break,但是{}不可以。所以说和{}一样倒真的错了注意在宏定义中,while(0)后面不加分号。
此用法的功能:
1.取代{},宏展开时不至于出错,特别是在含多条语句的宏里面用得比较多,涉及分号的问题;
如果使用大括号{}:
#define DO_SOMETHING {int time = 100 ;make_love(i);}if
(you->strong())DO_SOMETHING;
else
..;
则展开是这样的:
if
(you->strong())
{
int
time
= 100 ;make_love(i);}
;
else
..;
如果使用do{...}while(0)就不会出错。
#define DO_SOMETHING do{int time = 100 ;make_love(i);} while(0)
if
(you->strong())
do{
int
time
= 100 ;make_love(i);}
while(0);
else
..;
2.为break服务,避免使用GOTO,用BREAK做跳出.
当你执行一段代码到一半,想跳过剩下的一半的时候,如果你正处于do while循环中,则能用break达到这个目的。break的作用是跳出当前循环体。
参考:http://bbs.csdn.net/topics/390361821 后续继续补充
-
while语句 代码清单4-5
2018-08-18 18:06:02#include <stdio.h> int main() { int no; printf("请输入一个正整数: \n"...=0和while后面加大括号 printf("%d",no); //这里不是no-- , 记得加分号 no--; //错... -
Java程序设计:第4章 循环结构程序设计.ppt
2020-12-04 16:56:084.5 循环语句的比较 三种循环语句中do-while语句的后面必须使用分号结束同时必须注意for语句和while语句循环继续条件的括号后面不能加分号如果不留意加了分号可能不会有语法错误但程序的执行与预期的结果就不同了 //... -
一个菜鸟的Linux起步 课程第四节:if,switch选择语句,for,while循环结构,Makefile,数组
2018-05-21 23:03:08sizeof用法注意点:sizeof ...{代码}else//else可以是没有的{代码}注意:else是和前面最近的没有配对的if相配对 if内部还可以进行if语句的嵌套对于if----elseif表达式成立的条件else和if配对if()后面不能加分号i... -
大数据第3天
2019-05-08 18:30:29while 只要布尔表达式为 true,循环就会一直执行下去。 while( 条件) { //循环内容 } do while 对于 while 语句而言,如果不满足条件,则不能进入循环。...在do-while语句的表达式后面必须加分号 do { //代码... -
C语言程序设计课件 第5章-改.ppt
2020-11-09 15:57:25注意 1i 和 sum要赋初值 2循环体如果包含一个以上的语句以复合语句形式出现如果不加花括弧则while语句的范围只到while后面第一个分号处 3在循环体中应有使循环趋向于结束的语句 补充例题从两个红球三个白球四个黑球... -
51单片机-LED闪烁
2019-08-20 09:17:28目录基本知识程序仿真(测试延时函数) 基本知识 延时函数 void delay(u16 i)//大约延时10us { while(i--); } 利用while循环来占用CPU的执行时间 特点:不精确,后面会讲到用定时器...语句后面要加分号 tepedef前... -
C++编码规范
2020-11-20 20:42:51C++编码规范 一、排版 ...–逗号、分号只在后面加空格 –if、while、for、switch等关键字与之后的左括号之间加空格 不加空格的位置 –函数名与之后的左括号质检,带参数的宏与之后的左括号之间不加空格 -
C51单片机让LED灯闪烁
2020-06-29 20:59:51一.原理分析 LED灯的发光原理我们已经在上一篇...//后面要加分号 重新定义一些常用的关键字,可以增强程序的可移植性,因为在不同的编译软件上面,C语言的数据类型的关键字的位宽是不一样的。 #while循环函数 while(i -
jython语言学习笔记
2019-07-06 14:04:131.变量可以随便定义,不限制类型,不限制数值。...在print语句的后面有格式转换时要加上% , for和while之后要加冒号,快捷键被我改成了CTRL+R 和D Method Description of Functionality capitalize()... -
C语言常见错误小结,希望对大家有帮助
2009-08-04 18:37:59复合语句的花括号后不应再加分号,否则将会画蛇添足。 又如: if (a%3==0); I++; 本是如果3整除a,则I加1。但由于if (a%3==0)后多加了分号,则if语句到此结束,程序将执行I++语句,不论3是否整除a,I都将自动加1。 ... -
十天学会ASP.net--我认为ASP.NET比ASP难很多,希望大家做好准备
2008-12-05 08:41:03实际上C#就一般的操作来说,只是区分大小写和多了一个分号这两点与VB.NET不同其他都差不多啊。在ASP里面我们读取数据就直接用RECORDSET,然后在HTML代码里面穿插就可以显示了,但是ASP.NET讲究的是代码分离,如果... -
整理后java开发全套达内学习笔记(含练习)
2011-06-06 14:29:30注:float 和 double 的小数部分不可能精确,只能近似。 比较小数时,用 double i=0.01; if ( i - 0.01 ) ... 不能直接 if (i==0.01)... 默认,整数是int类型,小数是double类型 long类型值,需跟L或l在数据后;... -
(谭浩强)c语言学习书
2008-12-16 10:28:45但预处理命令,函数头和花括号“}”之后不能加分号。 6.标识符,关键字之间必须至少加一个空格以示间隔。若已有明显的间隔符,也可不再加空格来间隔。 1.10 书写程序时应遵循的规则 从书写清晰,便于阅读,理解,... -
C++复习资料之系列
2008-12-30 21:35:45(a) 必须在程序的开头 (b) 必须在程序的后面 ( c ) 可以在程序的任何地方 (d) 必须在其它函数中间 2.用C++语言编制的源程序要变为目标程序必须要经过( d )。 (a) 解释 (b) 汇编 (c) 编辑 (d) 编译 3.C++程序... -
VC++科学计算器的设计V1_4Beta.rar
2010-03-23 04:54:59MATLAB是矩阵实验室(Matrix Laboratory)的简称,是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。... -
如何编写批处理文件批处理文件批处理文件
2010-04-14 10:36:10简明批处理教程22009年10月20日 星期二 下午 05:35 最近对于批处理技术的探讨比较热,也有不少好的批处理程序发布,但是如果没有一定的相关知识恐怕不容易看懂和理解这些批处理文件,也就更谈不上自己动手编写了,古...