while语句
以下为while循环的一般形式
while(expression) statement
statement可以是一个带有分号的简单语句,也可以是花括号中的一个复合语句。
比较大小:使用关系运算符和表达式
新的_Bool类型
一个_Bool变量可以具有值1(真)或值0(假)。如果把一个非零的值赋给_Bool变量,它会被设置成1。
_Bool input_is_good; input_is_good=(scanf("%ld",&num)==1); while(input_is_good)
运算符优先级
for循环
for(initialize;test;update) statement
for语句用三个分号分开的控制表达式来控制循环过程。initialize表达式只在循环语句执行之前执行一次。然后对test表达式求值,如果为真就执行一次循环,然后计算update表达式,接着再次检查test表达式。
更多的赋值运算符:+=、-=、*=、/=和%=
逗号运算符
逗号运算符扩展了for循环的灵活性。
#include<stdio.h> int main(void) { const int FTRST_OZ=37; const int NEXT_OZ=23; int ounces,cost; printf("ounces cost\n"); for(ounces=1,cost=FTRST_OZ;ounces<=16;onces++, cost+=NEXT_OZ) printf("%5d $%4.2f\n",ounces,cost/100.0); return 0; }
这个程序在初始化和更新表达式中使用了逗号表达式。
逗号表达式还有两个属性。首先,它保证分开的表达式按从左到右的次序进行计算(也就是说,逗号是个顺序点,逗号左边所有的副作用都在程序运行到逗号右边之前生效)。例如:
ounces++,cost=ounces*FIRST_OZ
其次,整个逗号表达式的值是右边成员的值。语句:
x=(y=3,(z=++y+2)+5);
如果不小心在写一个数字时使用了逗号:
houseprice=249,500;
C把它解释成一个逗号表达式,houseprice=249是左表达式,而500是右表达式。因此整个式子的值就是右边表达式的值。它等同于下面的代码:
houseprice=249; 500;
do while循环
do statement while(expression);
在expression为假之前重复执行statement部分。