0%

C语言 if语句

C语言的if语句

​ C语言里面有一个问题,就是虽然对于逻辑运算符而言,存在真假,不过C语言里面是没有这个概念的,不想Python里面有True和False,对于C而言,非假即为真,也就是如果值不是0,那么就认为是真的。

此处为何非假即为真,而不是非真即为假呢,因为只有0为假,其他均为真

那么什么时候会用到if语句呢,答案是很多时候,但凡开始结构化语句判断就会涉及到,比如:

  1. 判断是正数 如示例if1.c

  2. 判断成绩:不及格或及格 如示例if2.c

  3. 判断年龄段:婴儿、儿童、青少年、成人等, 如示例if3.c

这三种情况从简单到复杂覆盖了if语句的情况。

  1. 最简单的就是判断是否真假:
1
2
3
4
if (true)
{
//do something
}

这里假定定义了true为真,比如#define true 1

  1. 第二种情况为判断真假
1
2
3
4
5
6
7
8
if (true)
{
// do something
}
else
{
// do something else
}
  1. 第三种情况为判断各种情况的真假
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
if (a)
{
// a do something
}
else if (b)
{
// b do something
}
else if (c)
{
// c do something
}
else
{
// do something else
}

按照上面的例子,简单举几个例子如下:

1
2
3
4
5
6
7
8
9
10
11
12
/*beginner/if/if1.c*/
#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
/*beginner/if/if2.c*/
#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
/*beginner/if/if3.c*/
#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
#beginner/if/Makefile

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
处无为之事,行不言之教;作而弗始,生而弗有,为而弗恃,功成不居!

欢迎关注我的其它发布渠道