C语言是结构化的程序设计语言,这⾥的结构指的是顺序结构、选择结构、循环结构。
使⽤
if
、
switch
实现分支结构,使⽤
for
、
while
、
do while
实现循环结构
if语句
- 语法形式 if(表达式)语句; 表达式成立(为真),则语句执行,不成立(为假),语句不执行。C语言中,0为假,非0为真。
if(1 == 2) printf("good");//为假,不打印 if(1 == 1) printf("good");//打印 int num1 = 0; if(num1) printf("good");//为假,不打印 int num2 = -1; if(num2) printf("good");//打印
if
(
表达式
)
语句
1
else
语句
2
//输入一个整数,判断是否为奇数
int num;
scanf("%d", &num);
if (num % 2 == 1)
printf("%d为奇数",num);
else
printf("%d为偶数",num);
-
默认在 if 和 else 语句中默认都只控制⼀条语句,多条要使用 {} 将代码括起来。
-
嵌套if
在
if else
语句中,
else
可以与另⼀个
if
语句连用,构成多重判断。
int age = 0;
scanf("%d", &age);
if(age<18)
printf("少年\n");
else if(age<=44)
printf("⻘年\n");
else if(age<=59)
printf("中⽼年\n");
else(age<=89)
printf("⽼年\n");
-
悬空else问题 else 总是跟最接近的 if 匹配
int a = 0;
int b = 2;
if(a == 1)
if(b == 2)
printf("hehe\n");
else
printf("haha\n");
//输出的结果是:
//如果希望else确实和第⼀个if匹配
int a = 0;
int b = 2;
if(a == 1)
{
if(b == 2)
printf("hehe\n");
}
else
{
printf("haha\n");
}
关系操作符
- 用于比较的表达式,称为 “关系表达式”(relational expression),里面使用的运算符就称
为“关系运算符”(relational operator)
>
大于运算符
|
>=
大于等于运算符
|
==
相等运算符
|
< 小于运算符 |
<=
小于等于运算符
|
!=
不相等运算符
|
关系表达式通常返回
0
或
1
,表示真假。
多个关系运算符不宜连用 例如
i < j < k ,
关系运算符是从左到右计算,所以实际执行的是
(i < j) < k。
i < j 返回
0
或
1
,所以最终是
0
或
1
与变量
k
进行比较。
如果想要判断变量
j 的值是否在 i
和
k 之间,应该使用
i < j && j < k。
条件操作符
- 条件操作符也叫三目操作符,需要接受三个操作数的 exp1 ? exp2 : exp3
如果 exp1 为真, exp2 计算,计算的结果是整个表达式的结果;如果 exp1 为假, exp3 计算,计算的结果是整个表达式的结果。
//使⽤条件表达式实现找两个数中较⼤值
int a = 0;
int b = 0;
scanf("%d %d", &a, &b);
int m = a>b ? a : b;
printf("%d\n", m);