一.if语句
1.if
if 语句的语法形式如下:
1.if ( 表达式 )
2. 语句
表达式成立(为真),则语句执行,表达式不成立(为假),则语句不执行
在C语言中,0为假,非0表示真,
也就是表达式的结果如果是0,则语句不执行,表达式的结果如果不
是0,则语句执行。
2.else
如果⼀个数不是奇数,那就是偶数了,如果任意⼀个整数,我们要清楚的判断是奇数还是偶数怎么表示
呢?
这里就需要 if...else... 语句了,语法形式如下:
1. if ( 表达式 )
2. 语句1
3. else
3.分支中包含多条语句
默认在 if 和 else 语句中默认都只控制一条语句,比如:
#
include
<stdio.h>
int
main
()
{
int
age =
0
;
scanf
(
"%d"
, &age);
if
(age >=
18
)
printf
(
"
成年了\n"
);
printf
(
"
可以谈恋爱了\n"
);
return
0
;
}
上⾯的代码,你会发现输⼊的值不管是>=18 还是<18,"可以谈恋爱了" 都会打印在屏幕上。
这是因为 if 语句只能控制⼀条语句,就是 printf("成年了\n"); ,if语句为真,则打印成年了,
if语句为假,则不打印,对于 printf("可以谈恋爱了\n"); 是独⽴存在的,不管if语句的条件的真
假,都会被执⾏。那如果我们要if语句同时控制2条语句,怎么办呢?那就要使⽤ {} 将代码括起来, else也可以加上大括号,如下:
#
include
<stdio.h>
int
main
()
{
int
age =
0
;
scanf
(
"%d"
, &age);
if
(age >=
18
)
//if
后使⽤
{}
控制多条语句
-
这个块也叫:程序块,或者复合语句
{
printf
(
"
成年了
\n"
);
printf
(
"
可以谈恋爱了
\n"
);
}
return
0
;
}
#
include
<stdio.h>
int
main
()
{
int
age =
0
;
scanf
(
"%d"
, &age);
if
(age >=
18
)
//if
后使⽤
{}
控制多条语句
-
这个块也叫:程序块,或者复合语句
{
printf
(
"
成年了
\n"
);
printf
(
"
可以谈恋爱了
\n"
);
}
else
//else
后使⽤
{}
控制多条语句
-
这个块也叫:程序块,或者复合语句
{
printf
(
"
未成年
\n"
);
printf
(
"
不可以早恋哦
\n"
);
}
return
0
;
}
4.嵌套if
在 if else 语句中, else 可以与另⼀个 if 语句连用,构成多重判断。
比如:要求输⼊⼀个整数,判断输⼊的整数是0,还是正数或者负数。请看如下代码:
#
include
<stdio.h>
int
main
()
{
int
num =
0
;
scanf
(
"%d"
, &num);
if
(num ==
0
)
printf
(
"
输⼊的数字是
0\n"
);
else if
(num >
0
)
//
这⾥的
if
相当于嵌套在
else
语句中,形成了嵌套结构
printf
(
"
输⼊的数字是正数
\n"
);
else
printf
(
"
输⼊的数字是负数
\n"
);
return
0
;
}
上图中橙⾊背景的代码就是嵌套在前面的 else 子句中的,构成了嵌套的if语句。
再比如: 输入一个整数,如果是正数,再判断是奇数还是偶数,并输出;如果不是正数则输出:非正数。
#
include
<stdio.h>
int
main
()
{
int
num =
0
;
scanf
(
"%d"
, &num);
if
(num>
0
)
{
if
(num%
2
==
0
)
printf
(
"
偶数
\n"
);
else
printf
(
"
奇数
\n"
);
}
else
{
printf
(
"
⾮正数
\n"
);
}
return
0
;
}
上⾯的代码中橙色背景的代码也是嵌套在 if 语句中的,构成了嵌套的 if 语句。
以上就是嵌套if语句的语法,有了嵌套if语句,就可以完成更多复杂逻辑的判断。
练习:
输⼊一个人的年龄
如果年龄<18岁,打印"少年"
如果年龄在18岁⾄44岁打印"⻘年"
如果年龄在45岁⾄59岁打印"中⽼年"
如果年龄在60岁⾄89岁打印"⽼年"
如果90岁及以上打印"⽼寿星"
参考代码:
//
⽅法
1
#
include
<stdio.h>
int
main
()
{
int
age =
0
;
scanf
(
"%d"
, &age);
if
(age<
18
)
printf
(
"
少年
\n"
);
else if
(age<=
44
)
printf
(
"
⻘年
\n"
);
else if
(age<=
59
)
printf
(
"
中⽼年
\n"
);
else if
(age<=
89
)
printf
(
"
⽼年
\n"
);
else
printf
(
"
⽼寿星
\n"
);
return
0
;
}
//
带上⼤括号更容易看明⽩
#
include
<stdio.h>
int
main
()
{
int
age =
0
;
scanf
(
"%d"
, &age);
if
(age<
18
)
{
printf
(
"
少年
\n"
);
}
else
{
if
(age<=
44
)
{
printf
(
"
⻘年
\n"
);
}
else
{
if
(age<=
59
)
{
printf
(
"
中⽼年
\n"
);
}
else
{
if
(age<=
89
)
printf
(
"
⽼年
\n"
);
else
printf
(
"
⽼寿星
\n"
);
}
}
}
return
0
;
}
二.switch循环
1.除了 if 语句外,C语⾔还提供了 switch 语句来实现分⽀结构。 switch 语句是⼀种特殊形式的 if...else 结构,⽤于判断条件有多个结果的情况。它把多重
的
else if
改成更易⽤、可读性更好的形式。
1.switch
(expression) {
2.case
value1: statement
3.case
value2: statement
4.default
: statement
5.}
上面代码中,根据表达式
expression
不同的值,执行相应的
case
分支。如果找不到对应的值,
就执行
default
分支。
注:
•
switch
后的
expression
必须是整型表达式
•
case
后的值,必须是整形常量表达式
三.while循环
while循环
C语言提供了3种循环语句, while 就是其中一种,接下来就介绍一下 while 语句。
while 语句的语法结构和 if 语句非常相似。
四.for循环
for 循环是三种循环中使用最多的, for 循环的语法形式如下:
1 .for(表达式1; 表达式2; 表达式3)
语句;//如果循环体想
包含更多的语句,可以加上大括号
2.
表达式1 用于循环变量的初始化
表达式2 用于循环结束条件的判断
表达式3 用于循环变量的调整
五.do—while循环
在循环语句中 do while 语句的使⽤最少,它的语法如下:
do
语句;
while(表达式);
while 和 for 这两种循环都是先判断,条件如果满足就进入循环,执行循环语句,如果不满足就跳
出循环;
而do while 循环则是先直接进⼊循环体,执行循环语句,然后再执行while 后的判断表达式,表
达式为真,就会进行下⼀次,表达式为假,则不再继续循环。