C语言的if语句
C语言里面有一个问题,就是虽然对于逻辑运算符而言,存在真假,不过C语言里面是没有这个概念的,不想Python里面有True和False,对于C而言,非假即为真,也就是如果值不是0,那么就认为是真的。
此处为何非假即为真,而不是非真即为假呢,因为只有0为假,其他均为真
那么什么时候会用到if语句呢,答案是很多时候,但凡开始结构化语句判断就会涉及到,比如:
判断是正数 如示例if1.c
判断成绩:不及格或及格 如示例if2.c
判断年龄段:婴儿、儿童、青少年、成人等, 如示例if3.c
这三种情况从简单到复杂覆盖了if语句的情况。
- 最简单的就是判断是否真假:
这里假定定义了true为真,比如#define true 1
- 第二种情况为判断真假
1 2 3 4 5 6 7 8
| if (true) { } else { }
|
- 第三种情况为判断各种情况的真假
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| if (a) { } else if (b) { } else if (c) { } else { }
|
按照上面的例子,简单举几个例子如下:
1 2 3 4 5 6 7 8 9 10 11 12
| #include <stdio.h>
int main() { int value = 5;
if (value > 0) printf("Yes, positive number\n");
return 0; }
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| #include <stdio.h>
int main() { int score = 75;
if (score < 60) printf("Not passed\n"); else printf("Passed\n");
return 0; }
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| #include <stdio.h>
int main() { int age = 16;
if (age < 3) printf("Baby\n"); else if (age < 5) printf("preschooler\n"); else if (age < 10) printf("schoolchild\n"); else if (age < 12) printf("preteen\n"); else if (age < 18) printf("teenager\n"); else printf("adult\n");
return 0; }
|
相应地Makefile如下所示:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
ALL : if1 if2 if3
if1 : if1.c gcc -o if1 if1.c
if2 : if2.c gcc -o if2 if2.c
if3 : if3.c gcc -o if3 if3.c
.PHONY : clean
clean: rm -f if1 if2 if3
|
输入make
,然后./operator4
输出为:
1 2 3 4 5 6
| $ ./if1 Yes, positive number $ ./if2 Passed $ ./if3 teenager
|