一、if else语句
1、
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int grade;
scanf("%d", &grade);
if (grade >= 0 && grade < 60)//此时用逻辑与操作符
{
printf("false\n");
printf("fighting\n");
} //语句成立要控制多条语句,要用代码块
else if (grade >= 60 && grade < 90)
printf("Good\n");
else//注意此处只有else,没有表达式了
{
printf("Great\n");
}
return 0;
}
2、悬空else
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int a = 0;
int b = 2;
if (a == 1)//语句不成立,下面的if else不执行
if (b == 2)
printf("hehe\n");
else
printf("haha\n");
return 0;
}
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int a = 0;
int b = 2;
if (a == 1)//语句不成立,下面的if else不执行
if (b == 2)
printf("hehe\n");
else
printf("haha\n");
return 0;
}
//else与距离最近的未匹配的if匹配
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int a = 0;
int b = 2;
if (a == 1)//语句不成立,下面的if else不执行
{
if (b == 2)
printf("hehe\n");
}
else
printf("haha\n");
return 0;
}
//输出haha
3、if书写形式的对比
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int a = 0;
if (a = 1)//赋值语句,不是判断语句
{
printf("haha\n");
}
return 0;
}
//代码可以执行,但是与我们的目的不同
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int a = 0;
if (1 = a)//变量不能赋值给常量
{
printf("haha\n");
}
return 0;
}
//报错,可以发现,if里的判断语句,将常量放前,变量置后,容易发现错误
4、练习:打印100以内的奇数
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int n = 1;
while (n >= 1 && n <= 100)
{
if (n % 2 == 1)
{
printf("%d\n", n);
}
n++;
}
return 0;
}
二、switch多分支语句
1、
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int day;
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;//最后一个break养成好习惯加上
default:
printf("输入错误\n");
break;
}
return 0;
}
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int n = 1;
int m = 2;
switch (n)
{
case 1:
m++;
case 2:
n++;
case 3:
switch (n)//switch语句可以嵌套使用
{
case 1:
n++;
case 2:
m++;
n++;
break;
}
case 4:
m++;
break;
default:
break;
}
printf("m = %d, n = %d\n", m, n);
return 0;
}