2.1.3 练习
1. 判断一个数是否为奇数
2. 输出 1-100 之间的奇数
2.2 switch语句
switch 语句也是一种分支语句。
常常用于多分支的情况。
比如:
输入 1 ,输出星期一
输入 2 ,输出星期二
输入 3 ,输出星期三
输入 4 ,输出星期四
输入 5 ,输出星期五
输入 6 ,输出星期六
输入 7 ,输出星期日
那我没写成 if...else if ...else if 的形式太复杂,那我们就得有不一样的语法形式。
这就是 switch 语句。
switch ( 整型表达式 )
{
语句项;
}
而 语句项 是什么呢?
// 是一些 case 语句:
// 如下:
case 整形常量表达式 :
语句 ;
、
2.2.1 在switch语句中的 break
在 switch 语句中,我们没办法直接实现分支,搭配 break 使用才能实现真正的分支。
比如:
#include <stdio.h> int main () { int day = 0 ; switch ( day ) { case 1 : printf ( " 星期一 \n" ); break ; case 2 : printf ( " 星期二 \n" ); break ; case 3 : printf ( " 星期三 \n" ); break ; case 4 : printf ( " 星期四 \n" ); break ; case 5 : printf ( " 星期五 \n" ); break ; case 6 : printf ( " 星期六 \n" ); break ; case 7 : printf ( " 星期天 \n" ); break ; } return 0 ; } 有时候我们的需求变了: 1. 输入 1-5 ,输出的是 “weekday”; 2. 输入 6-7 ,输出 “weekend” 所以我们的代码就应该这样实现了: #include <stdio.h> //switch 代码演示 int main () { int day = 0 ; switch ( day ) { case 1 : case 2 : case 3 : case 4 : case 5 : printf ( "weekday\n" ); break ; case 6 : case 7 : printf ( "weekend\n" ); break ; } return 0 ; }
break 语句 的实际效果是把语句列表划分为不同的分支部分。
编程好习惯
在最后一个 case 语句的后面加上一条 break 语句。
(之所以这么写是可以避免出现在以前的最后一个 case 语句后面忘了添加 break 语句)。
2.2.2 default子句
如果表达的值与所有的 case 标签的值都不匹配怎么办?
其实也没什么,结构就是所有的语句都被跳过而已。
程序并不会终止,也不会报错,因为这种情况在 C 中并不认为是个错误。
但是,如果你并不想忽略不匹配所有标签的表达式的值时该怎么办呢?
你可以在语句列表中增加一条 default 子句,把下面的标签
default :
写在任何一个 case 标签可以出现的位置。
当 switch 表达式的值并不匹配所有 case 标签的值时,这个 default 子句后面的语句就会执行。
所以,每个 switch 语句中只能出现一条 default 子句。
但是它可以出现在语句列表的任何位置,而且语句流会像执行一个 case 标签一样执行 default 子句。
(default放在第一行也是可以的,只是习惯放在最后一行)
编程好习惯
在每个 switch 语句中都放一条 default 子句是个好习惯,甚至可以在后边再加一个 break 。
2.2.3 练习
#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
因为嵌套switch里面的break跳出循环时只能跳出里面的switch(即跳出case3),然后就执行case4.遇到break跳出外面的switch。
3. 循环语句
while
for
do while
3.1 while循环
我们已经掌握了, if 语句:
if ( 条件 )
语句 ;
当条件满足的情况下, if 语句后的语句执行,否则不执行。
但是这个语句只会执行一次。
由于我们发现生活中很多的实际的例子是:同一件事情我们需要完成很多次。
那我们怎么做呢?
C 语言中给我们引入了: while 语句,可以实现循环。
//while 语法结构
while ( 表达式 )
循环语句 ;
while 语句执行的流程:
比如我们实现:
在屏幕上打印1-10的数字。
#include <stdio.h> int main () { int i = 1 ; while ( i <= 10 ) { printf ( "%d " , i ); i = i + 1 ; } return 0 ; }
上面的代码已经帮我了解了 while 语句的基本语法,那我们再了解一下:
3.1.1 while语句中的break和continue
break 介绍 //break 代码实例 #include <stdio.h> 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 是用于 永久 终止循环的。
continue 介绍 //continue 代码实例 1 #include <stdio.h> int main () { int i = 1 ; while ( i <= 10 ) { if ( i == 5 ) continue ; printf ( "%d " , i ); i = i + 1 ; } return 0 ; }
这里代码输出的结果是什么?
总结:
continue 在 while 循环中的作用就是:
continue 是用于终止本次循环的,也就是本次循环中 continue 后边的代码不会再执行,
而是直接跳转到 while 语句的判断部分。进行下一次循环的入口判断。
好啦!!!
由于时间原因,今天就先到这里啦!
下一篇我们接着讲哈!
如果感觉对你有用,就来个点赞加关注吧!
谢谢大家!!!