if语句
int main()
{
单分支
int age = 10;
if (age < 18);
printf("未成年\n");
//双分支
int age = 10;
if (age < 18)
printf("未成年\n");
else
printf("成年\n");
多分支
int age = 68;
if (age < 18)
printf("未成年\n");
else if (age >= 18 && age < 28)//区间条件要分开设置,用 &&(与) 连接,而不能写成(18<=age<28)
printf("青年\n");
else if (age >= 28 && age < 50)
printf("壮年\n");
else if (age >= 50 && age < 100)
printf("老年\n");
else
printf("长命百岁\n");
一个函数下面有多条printf()语句,应该用{}括起来
if (age < 18)
//printf("未成年\n");
//printf("不能谈恋爱\n");//如果想打印两个的话必须写成代码块,不能直接这样写
//此时不能打印出两条if (age < 18)
{ //写成代码块
printf("未成年\n");
printf("不能谈恋爱\n");
}//此时可以打印出两条
else 跟离得最近的且未匹配的if配对
int mian()
{
int a = 0;
int b = 2;
if (a == 1)
if (b == 2) //若想下面的else和上面的if匹配只需要把此if写成程序块
printf("hehe\n");
else //else 跟离得最近的且未匹配的if配对,
printf("haha\n");
//结果为空,a=0,根本就进不去if函数里面
return 0;
}
switch分支句
适合用于多分支
int main()
{
int day = 0;
scanf("%d", &day);
switch (day) //输入几,就执行case几,()里面必须是整型
{
case 1: //入口 ,必须是整型常量,不能是caseA此类
printf("星期1\n");
break; //出口
case 2:
printf("星期2\n");
break;
case 3:
printf("星期3\n");
break;
case 4:
printf("星期4\n");
break;
case 5:
printf("星期5\n");
break;
case 6:
printf("星期6\n");
break;
case 7:
printf("星期天\n");
break;
}return 0;
}
多个case执行的结果相同,则可以简化
int main()
{
int day = 0;
scanf("%d", &day);switch (day)
{
case 1:
case 2:
case 3:
case 4:
case 5:
printf("工作日\n");
break;
case 6:
case 7:
printf("休息日\n");
break;
default://default -默认,若上面的都没有被执行则会执行这一条
printf("输入错误\n");
break;
}return 0;
}
易错点
答案是A,continue一般用在循环语句中
错选了A
进入分支时a=1,执行case1,b=30;没有break,则继续执行case2,b=20;没有break,则继续执行case3,b=16;没有break,则继续执行default,b=0;然后跳出循环,返回b=0
所以选D
switch实例
int main()
{
int n = 1;
int m = 2;
switch (n)//输入为1,从case1开始执行
{
case 1: //从case1开始执行
m++; //m=2+1=3,没有break,继续往下执行
case 2:
n++; //n=1+1=2,没有break,继续往下执行
case 3://
switch(n) //此时输入n=2,从case2开始执行
{ //switch允许嵌套使用
case 1: //输入为2,不执行case1
n++;
case 2://执行case
m++, n++;//m=3+1=4,n=2+1=3
break;//跳出case3循环
}
case 4://继续执行
m++;//m=4+1=5
break;//结束循环
default:
break;//结束循环
}
printf("m= %d,n= %d\n", m, n);//打印结果为5,3
return 0;
}