目录
1.生活中的选择语句
这就是日常生活中的选择语句,小明可以通过踏实写作业从而考高分,也可以偷偷打游戏最终导致不及格,这就是不同的选择。
[注:在C语言中,0表示假,非0表示真】
2.if语句
(1)基础语法结构
1)单分支结构
if (表达式)
{语句;
}
else
{语句;
}
测试一个数的奇偶性:
int main()
{
int a = 0;
scanf("%d", &a);
if (a % 2 == 0)
{
printf("%d是偶数\n", a);
}
else
{
printf("%d是奇数\n", a);
}
}
2)多分支结构
if (表达式1)
{
语句1;
}
else if (表达式2)
{
语句2;
}
else
{
语句3;
}
测试一个人的课是否很多:
int main()
{
int class = 0;
scanf("%d", &class);
if (class > 0 && class <= 3)
{
printf("课很少");
}
else if (class >= 4 && class < 7)
{
printf("课还行");
}
else if (class >= 7 && class < 10)
{
printf("课很多");
}
else
{
printf("忙成陀螺");
}
return 0;
}
(2)悬空else
下面这段代码会打印出什么呢?
int main()
{
int m = 3;
int n = 20;
if (m == 3)
{
if (n == 19)
{
printf("%d-%d", m, n);
}
}
else
{
printf("%d-%d", m, n);
}
return 0;
}
结果是什么都不打印:
step1:因为m=3,所以进入第一个判断里
step2:但是n不等于19,所以m==3的判断里跳出来,且不进入else那里
那下面这段代码会打印出什么呢?
int main()
{
int m = 3;
int n = 20;
if (m == 3)
if (n == 19)
printf("%d月%d日", m, n);
else
printf("%d-%d", m, n);
return 0;
}
结果是3-20:
这里让我们难以进行判断原因是,并没有合适的{ },也没有对应的缩进。
else是和它离的最近的if匹配的。
也就是实际上这串代码是这样的:
int main()
{
int m = 3;
int n = 20;
if (m == 3)
{
if (n == 19)
printf("%d月%d日", m, n);
else
printf("%d-%d", m, n);
}
return 0;
}
(3)优质的if代码推荐
先进行两串代码的对比:
看似没有什么不同,只是在第三行 month 和 3 的位置有所颠倒
int main()
{
int month = 0;
if (month == 3)
{
printf("yes");
}
return 0;
}
int main()
{
int month = 0;
if (3 == month)
{
printf("yes");
}
return 0;
}
更推荐使用的是第二行代码:
因为在C语言中,‘’ = ‘’ 是赋值的符号,‘’ == ‘’才是判断
如果新手在初学时少打了一个等号,会改变代码的意思,陷入循环中去。