if条件语句:
基本组成
if(表达式)
语句;
通过判断表达式的真假,是否执行语句。
0 为假,非0为真。
双分支:
判断表达式是否为真,为真执行语句1,否则执行语句2
if(表达式)
语句1;
else
语句2;
多分支:
int age = 20;
if(age<18)
printf("未成年\n");
else if(age>=18 && age<60)
printf("成年\n");
else
printf("老登\n");
使用多条语句时,需要使用代码块 { }
int age = 10;
if(age<18)
{
printf("未成年\n");
printf("--禁止喝酒");
}
else if(age>=18 && age<60)
printf("成年\n");
else
printf("老登\n");
else是和它最近的if相匹配的
int a = 1;
int b = 2;
if(2 == a)
if(2 == b)
printf("hello");
else
printf("hhhhh");
结果没有任何东西输出,因为else和他最近的if相匹配
规范代码的书写,可以增加代码的可读性
if(2 == a)//表达式为假//所以代码块中不执行
{
if(2 == b)
printf("hello");
else
printf("hhhhh");
}
练习:
判断一个数是否为奇数:
int num = 11;
if(num%2 == 1)
printf("是奇数%d",num)
打印0-100之间的奇数
int a = 1;
while(a<=100)
{
if(a%2 == 1)
{
printf("%d",a);
}
a++;
}
// int a = 1;
// while(a<=100)
// {
// printf("%d ",a);
// a+=2;
// }
switch(整型表达式)
switch(整型表达式)
{
语句向;
}
语句项:
case 整型常量表达式
case 整型常量表达式
语句;
int a = 1;
scanf("%d",&a);
switch(a)
{
case 1:
printf("周一\n");
case 2:
printf("周二\n");
case 3:
printf("周三\n");
case 4:
printf("周四\n");
case 5:
printf("周五\n");
case 6:
printf("周六\n");
case 7:
printf("周日\n");
}
输入2则会打印
c:\Users\86153\Desktop\csdn_笔记\fenzhi-xunhuan>cd "c:\Users\86153\Desktop\csdn_笔记\fenzhi-xunhuan\" && gcc a.c -o a && "c:\Users\86153\Desktop\csdn_笔记\fenzhi-xunhuan\"a
2
周二
周三
周四
周五
周六
周日
这是因为switch根据 ( )中的整型表达式决定从哪个case进入,但是并没有决定从哪里出去
如果不想让它继续执行下去,使用break语句
int a = 1;
scanf("%d",&a);
switch(a)
{
case 1:
printf("周一\n");
case 2:
printf("周二\n");
break;
case 3:
printf("周三\n");
case 4:
printf("周四\n");
case 5:
printf("周五\n");
case 6:
printf("周六\n");
case 7:
printf("周日\n");
}
c:\Users\86153\Desktop\csdn_笔记\fenzhi-xunhuan>cd "c:\Users\86153\Desktop\csdn_笔记\fenzhi-xunhuan\" && gcc a.c -o a && "c:\Users\86153\Desktop\csdn_笔记\fenzhi-xunhuan\"a
2
周二
同理当打印1 - 7 其中的一个都可以使用break语句
switch(a)
{
case 1:
printf("周一\n");
break;
case 2:
printf("周二\n");
break;
case 3:
printf("周三\n");
break;
case 4:
printf("周四\n");
break;
case 5:
printf("周五\n");
break;
case 6:
printf("周六\n");
break;
case 7:
printf("周日\n");
break;
}
当输入的值超出范围(1-7)时,在最后的case后面添加一个提示
default:
printf("超出范围");
break;
将1-5划分为工作日,6.、7为假期。
输入1-5时打印工作日,6、7时打印为假期
switch(a)
{
case 1:
case 2:
case 3:
case 4:
case 5:
printf("工作日\n");
break;
case 6:
case 7:
printf("假期\n");
break;
default:
printf("超出范围");
break;
}
当输入 1 时
switch根据 ( )中的整型表达式决定从case 1 进入,但是并没有决定从哪里出去,所以会一直往下执行,执行到case5打印 工作日 然后case5有break语句终止执行。
switch可以嵌套. switch中的break只能跳出自己的switch
int a = 1;
int b = 2;
switch(a)//从case 1 进入
{
case 1:
a++;//a = 2
case 2:
b++;//b = 3
case 3:
switch(a)//a = 2 所以从case 2 进入
{
case 1:
a++;//case 1不执行
case 2:
b++;//b = 4
break;//终止自己的switch
}
//case 3 没有break语句
//继续执行
case 4:
b++;//b = 5
break;
}
printf("a=%d b=%d",a,b);// 2 5