else 的使用
//
适当的使用
{}
可以使代码的逻辑更加清楚。
//
代码风格很重要
#include <stdio.h>
int
main
()
{
int
a
=
0
;
int
b
=
2
;
if
(
a
==
1
) {
if
(
b
==
2
) {
printf
(
"hehe\n"
);
}
}
else
{
printf
(
"haha\n"
);
}
return
0
;
}
错误写法:
int
main
()
{
int
a
=
0
;
int
b
=
2
;
if
(
a
==
1
)
if
(
b
==
2
)
printf
(
"hehe\n"
);
else
printf
(
"haha\n"
);
return
0
;
}
else
的匹配
:
else
是和它离的最近的
if
匹配的。
用大括号分割
return 只能返回一个
int main()
if(condition){
return x;
}
return y;
避免混淆赋值运算和判断运算
//
代码
3
int
num
=
1
;
if
(
num
==
5
)
{
printf
(
"hehe\n"
);
}
//
代码
4
int
num
=
1
;
if
(
5
==
num
)
{
printf
(
"hehe\n"
);
}
常量放判断式左侧,避免混淆赋值运算和判断运算
代码
4
更好,逻辑更加清晰,不容易出错。
Switch语句
switch
(
整型表达式
)
{
语句项;
}
case
整形常量表达式
:
语句
;
switch必须是
整形表达式!!!(int,long,char可以,float不行)
case 必须是
整形常量表达式!!!(1.1不行,n变量不行)
case选择进入的地点
break选择出去的地点
default输入值不在case中的情况
case和default没有顺序关系,但一般吧default放在后面
编程好习惯
在最后一个
case
语句的后面加上一条
break
语句。
(之所以这么写是可以避免出现在以前的最后一个
case
语句后面忘了添加
break
语句)。
在每个
switch
语句中都放一条
default
子句是个好习惯,甚至可以在后边再加一个
break
练习
#include <stdio.h>
int
main
()
{
int
n
=
1
;
int
m
=
2
;
switch
(
n
)
{
case
1
:
m
++
;
case
2
:
n
++
;
case
3
:
switch
(
n
)
{
//switch
允许嵌套使用
case
1
:
n
++
;
case
2
:
m
++
;
n
++
;
break
;
}
case
4
:
m
++
;
break
;
default
:
break
;
}
printf
(
"m = %d, n = %d\n"
,
m
,
n
);
return
0
;
}
m=5,n=3
while循环
break
int
main
()
{
int
i
=
1
;
while
(
i
<=
10
)
{
if
(
i
==
5
)
break
;
printf
(
"%d "
,
i
);
i
=
i
+
1
;
}
return
0
;
}
总结:
break在while循环中的作用:
其实在循环中只要遇到
break
,就停止后期的所有的循环,直接终止循环。
所以:
while
中的
break
是用于
永久
终止循环的。
int
main
()
{
int
i
=
1
;
while
(
i
<=
10
)
{
if
(
i
==
5
)
continue
;
printf
(
"%d "
,
i
);
i
=
i
+
1
;
}
return
0
;
continue
int
main
()
{
int
i
=
1
;
while
(
i
<=
10
)
{
i
=
i
+
1
;
if
(
i
==
5
)
continue
;
printf
(
"%d "
,
i
);
}
return
0
;
}
总结
:
continue在while循环中的作用就是:
continue
是用于终止本次循环的,也就是本次循环中
continue
后边的代码不会再执行,
而是直接跳转到
while
语句的判断部分。进行下一次循环的入口判断
getchar的使用
int main() {
int ch = 0;
while ((ch=getchar())!=EOF)
{
putchar(ch);
}
return 0;
输入密码:123456 ABCD
会显示错误
添加循环
将输入中的数字输出
for循环(用的最多)
while循环调整三处,长代码情况下调整难度大
for循环三处调整集中
break在for循环中的作用:
与while循环中一致
continue在for循环中的作用
对比continue在while循环和for循环中的不同
for循环中必然进行调整步骤1234678910
while循环中不一定进行调整步骤1234
for语句使用建议、变种
循环100次
j在循环10次之后值为10,
总共打印出10个
。
循环2次
k=0是赋值语句,然后进行判断,0为假,不进入循环
k=1是赋值语句,然后进行判断,1为真,进入死循环
do-while循环
3.3.3 do
语句的特点
循环至少执行一次,使用的场景有限,所以不是经常使用。

break在do-while循环中的作用
同while,for
continue在do-while循环中的作用
同while
练习
n的阶乘
标准做法
从1到n的阶乘和
运算优化
错哪了????
逆天,终于对了,第二个循环里的n改成m就好了
在数组(有序)中找到7
折半查找算法
演示字符从两端向中间汇聚
分数求和
求最大值
存在不严谨的地方:max的初始值问题
乘法口诀表