1.if语句
①if(表达式)
语句;
#include<stdio.h>
int main(viod)
{
int age=10;
if(age<18)
printf("未成年");
return 0;
}
② if(表达式)
语句1;
else
语句2;
#include<stdio.h>
int main(viod)
{
int age=10;
if(age<18)
printf("未成年");
else
printf("成年");
return 0;
}
③ if(表达式)
语句 1;
else if(表达式)
语句 2;
else
语句 3;
#include<stdio.h>
int main(viod)
{
int age=0;
scanf("%d",&age);
if(age<18)
printf("未成年");
else if(age>=28&&age<50)//两个判断条件要用&&连接
printf("青年");
else if(age>=50&&age<90)//两个判断条件要用&&连接
printf("老年");
else
printf("老不死");
return 0;
}
悬空else问题
#include<stdio.h>
int main(viod)
{
int a=0;
int b=0;
if(a==1)//判断是否相等用==,而=是赋值的作用
if(b==2)
printf("hehe\n");
else
printf("haha\n");
return 0;
}
这个代码什么都不输出。else会与最近的未配对的if进行配对,这里else和If(b==2)配对,两个printf属于这个语句中的内容。但当if(a==1)不成立时,不能进行下面分支语句[if(b==2)....]
2.switch语句
switch(整型表达式)
{
语句项;
}
#include<stdio.h>
int main(viod)
{
int day=0;
scanf("%d",&day);
switch(day)
//要输入整型表达式,day已经用int定义为整型
{
case 1:
printf("星期一\n");
case 2:
printf("星期二\n");
case 3:
printf("星期三\n");
//case 后面要接着整数
//case 1+0:是可以的
//case 3.14 是错的
case 4:
printf("星期四\n");
}
return 0;
}
输入2时,程序会从case 2开始执行,并依次执行case 3,case 4......直至末尾。
#include<stdio.h>
int main(viod)
{
int day=0;
scanf("%d",&day);
switch(day)
{
case 1:
printf("星期一\n");
case 2:
printf("星期二\n");
//break语句可以使程序直接跳转到switch最后
break;
case 3:
printf("星期三\n");
case 4:
printf("星期四\n");
}
return 0;
}
输入2时,程序执行case 2,然后执行break语句,直接跳转到switch 末尾,不再依次执行case 3和case 4