两种分支语句
1、 if…else 语句
注意的点:
(1)else不独立存在,总与它最近的 if 相匹配
(2)变量与 0 比较,0应该出现在比较符号左边。
(3)float 型变量不能直接进行 0 值比较,需要定义精度
2、switch…case语句(单值多分支)
语法规则:
switch (expression)
{ //别忘记大括号
case CONST_1:
//code1;
break;
case CONST_2:
//code2;
break;
...
default:
code break;
break;
}
注:case 语句中的值只能是整型或者字符型,并且是常量。不可能出现case 1.5:这类的语句。
3、两种语句的相互转换(实现相同的功能)
#include <stdio.h>
void f1(int i)
{
if (i < 6)
{
printf("failed\n");
}
else if((i>=6)&&(i<=9))
{
printf("good\n");
}
else
{
printf("perfect\n");
}
switch (i < 6)
{
case 1:
printf("failed\n");
break;
default:
{
switch ((i >= 6) && (i <= 9))
{
case 1:
printf("good\n");
break;
default:
printf("perfect\n");
break;
}
}
break;
}
}
void f2(char c)
{
switch(c)
{
//case 1.5: error
// printf("failed\n");
// break;
case 'c':
printf("compile\n");
break;
case 'd':
printf("debug\n");
break;
case 'o':
printf("object\n");
break;
case 'r':
printf("run\n");
break;
default:
printf("unknow\n");
break;
}
if ('c' == c)
{
printf("compile\n");
}
else if ('d' == c)
{
printf("debug\n");
}
else if ('o' == c)
{
printf("object\n");
}
else if ('r' == c)
{
printf("run\n");
}
else
{
printf("unknow\n");
}
}
int main()
{
f1(1);
f1(8);
f1(10);
printf("\n");
f2('c');
f2('d');
f2('o');
f2('r');
f2('e');
return 0;
}
循环语句
while:先判断后执行
do…while:先执行后判断(至少执行一次循环体)
for:先判断后执行,比 while 语句更简洁
break 和 continue的区别(break 比 continue 更暴力)
break 表示终止循环。
continue 表示终止本次循环,进入下次循环。
在switch…case… 语句中 continue 不能用来代替 break,因为 continue 表示的是终止本次循环,进入下一次循环体,而 switch…case… 是分支语句,并不是循环语句。
do…while 结合 break 有妙用
潜规则:不用 goto 语句