- 判断
- 循环
-
判断
C 语言把任何非零和非空的值假定为 true,把零或 null 假定为 false。
if
if与if-else
if:
if(判断) {为真时语句} 只有一句语句时可以不需要{}
if-else:在if基础上增加else {为假时语句} 只有一句语句时也可以省略{}if-else-if-else
一个 if 语句后可跟一个可选的 else if…else 语句
一个 if 后可跟零个或一个 else,else 必须在所有 else if 之后。
- 一个 if 后可跟零个或多个 else if,else if 必须在 else 之前。
一旦某个 else if 匹配成功,其他的 else if 或 else 将不会被测试。
switch
switch(变量){case 变量值:执行语句;[break;]case 变量值:执行语句;[break;]...[default: 都不满足时执行的语句]变量必须是一个整型或枚举类型,或者是一个 class 类型,其中 class 有一个单一的转换函数将其转换为整型或枚举类型。
- 变量值必须是一个常量或者字面量 如case的变量值是一个变量,则出错
- 如果一个case没有break,则继续执行下一个case。不会退出
嵌套if与嵌套switch
略
循环
while
while(判断/表达式){执行语句} 为表达式时只要表达式为非零值,即为true
循环可以这样写 while(i++){…}
do-while
do{执行语句}while(判断或者表达式);
类似while,但是while可能一次都不执行。而do-while至少执行一次
for
for ([变量]; [判断]; [更新变量] ){执行语句}
- 只省略判断时,无限循环
- 所以三个参数都省略时:无限循环
int i; for( ;i<5;i++)``=for(int i=0;i<5;i++)=int i=0;for(i;i<5;i++)
注意只有在c99标准中才允许for中定义!c11也可以,但是c11是c++标准;c99才是c标准
非c99标准虽然不能for中定义,但是可以for中赋值 如int i;for(i=0)
以上不赋值也可以,因为int型默认值为0.其他举一反三
- 省略更新变量时则只执行一次或者因为判断为假直接不执行
- break:直接退出整个循环 除了循环还可以用于switch中
- continue:跳过当前一轮循环
- goto:将控制转移到被标记的语句。但是不建议在程序中使用 goto 语句。
