(一)if语句的使用
1.语法结构
注意:if 和 else 后面的语句只能执行一条,若想执行多条语句,应该用{ }括起来,组成一个代码块。
(1)语法结构1
if(表达式)
语句;
C语言中如何表示真假?
真:非0就是真。假:0就是假
(2)语法结构2
if (表达式)
语句1;
else
语句2;
(3)语法结构3
if (表达式1)
语句1;
else if (表达式2)
语句2;
else
语句3;
2.使用案例
(1)案例1:判断一个数是否为奇数
#include<stdio.h>
int main()
{
int num = 15;
if (num % 2 == 1)/*任何一个数除以2的余数为1则为奇数,余数为0则为偶数*/
printf("奇数\n");
else
printf("偶数\n");
return 0;
}
(2)案例2:输入的整数能被5整除吗?
#include<stdio.h>
int main()
{
int vx;
puts("请输入一个整数");
scanf("%d", &vx);
if (vx % 5)
puts("输入的整数不能被整除");
else
puts("输入的整数能被整除");
return 0;
}
(3)案例3:输出1~100以内的奇数
/*方法一*/
#include<stdio.h>
int main()
{
int i = 0;
for (i = 1; i <= 100; i++)
{
if (1==i%2)
printf("%d\n", i);
}
return 0;
}
/*方法2*/
#include<stdio.h>
int main()
{
int i = 0;
for (i = 1; i <= 100; i+=2)
{
printf("%d\n", i);
}
return 0;
}
(4)反例:else的就近原则
#include<stdio.h>
int main()
{
int a = 0;
int b = 2;
if (a == 1)
if (b == 2)
printf("牛蛙\n");
else
printf("牛啊\n");
return 0;
}
**打印结果是什么也没打印,为什么??
else就近原则:else会与离与它最近的if进行匹配**。
(二)switch语句的使用
1.使用场景
常用于多分支的场景。
2.语法结构
switch(整型表达式)
{
语句项;
}
/*语句项是一般是什么?*/
语句项一般都是一些case语句:
case 整型常量表达式;
语句1;break;
break语句的作用:在程序完成一个switch语句后跳出switch语句的作用
3.使用案例
(1)案例1:判断星期几
#include<stdio.h>
int main()
{
int day = 0;
scanf("%d", &day);
switch (day)
{
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;
default:
printf("请输入1至7的数字。\n"); break;
}
return 0;
}
switch语句会首先对表达式的值进行判断,然后程序会转向case后书写的值与判断结果相等的部分
当程序被执行到break语句的break时,会跳出switch语句
(2)案例2:判断工作日
#include<stdio.h>
int main()
{
int day;
scanf("%d", &day);
switch (day)
{
case 1:
case 2:
case 3:
case 4:
case 5:
printf("工作日"); break;
case 6:
case 7:
printf("休息日"); break;
default:
printf("请输入1至7的数字。\n"); break;
}
return 0;
}
defalut语句的作用:所有case不能匹配的情况下使用
(3)案例3:计算m与n的值并打印
#include<stdio.h>
int main()
{
int n = 1;
int m = 2;
switch (n)
{
case 1:
m++;
case 2:
n++;
case 3:
switch (n)
{
case 1:
n++;
case 2:
m++; n++; break;
}
case 4:
m++; break;
default:
break;
}
printf("m=%d,n=%d\n", m, n);
return 0;
}
switch允许进行嵌套使用;