C语言入门6-选择结构--f语句-switch
一、 什么是选择结构?
选择结构,也称为分支结构!!
选择结构就是根据 给定的判定条件,判断结果,
并根据 判断的结果 来控制程序的流程
(流程图中, 菱形框 是有来判断的 ,这节课 我们就用到 菱形框)
二、 选择结构的 三种情况
选择结构也称为分支结构,可以分为三种情况
单分支选择结构 if
面临的选择是:要么执行一个操作,要么跳过它
双分支选择结构 if else
面临的选择是:在两个不同的操作中选择其中的一个来执行
多分支选择结构 if else if 、 switch
面临的选择是:2种以上的选择(需要连续执行多个条件判断)
Break 不是switch 专有语句,if 里面也可以使用。
在讲注意事项之前大家先在机器敲下下面的三段代码:
(1) case与后边常量表达式之间必须有 空格。
举例子: Case1; case 1;
(2) 有无break都行,一般都有,作用是跳出switch.
case是入口 break是出口
(3) default是缺省值,可有可无,意思是除case 后所有情况(值)下的其它情况(值)。
default,可有可无,顺序无所谓!!!!
(4) 各case和default可以任意互换位置,并不影响程序和逻辑的正常运行。
(5) case后边的常量表达式不能出现同一个值,否则程序报错!!!
(6) switch 后边的 表达式 可以是任意表达式,但是结果只能是整型 或单字符型。
(7) case 后边可以是 任意常量表达式, 但是结果只能是整型或单字符型。(+—*/)
三、 RAPTOR之选择结构及Raptor中的关系和逻辑运算符
分支结构(selection)
1.可以按条件判断,分流执行
2.同条件语句判断别True和False
选择结构用于判断给定的条件,根据判断的结果判断某些条件,根据判断的结果来控制程序的流程。
四、 选择结构有三种,对应的代码是 什么样的??
程序设计语言中
选择结构 一般有两大语法: 一是if语句; 二是switch语句。
首先我们来学习下if语句, if翻译成中文是 如果的意思,
现在让你以汉语“如果”造句,你会想到什么呢?
如果———就———否则———。
If ( 判断条件/ 表达式 )
{
}
if表达式 一般为 逻辑表达式 或 关系表达式(判断的是某个区域),也可以是常量表达式,但是比较少,
判断条件的结果只有”真”或”假”。
判断的值:真1 假 0;
逻辑值 只能用 0和1来表示!!!!!
结果 可以用 真和假来表示!!!
- 1. 单分支语句 if
(1) 格式
If (表达式)
{
执行语句;
}
如果表达式为真(成立),则执行语句,否则什么都不做。
注意:
if后面只有一条语句时,可以不用 { },
多条语句时一定要加 { };
但是 建议初学者if( ) 后紧接{ }。
****小括号后面 不加分号!!!
****大括号后面 不加分号!!!
- 2. 双分支语句 if-else
(1) 格式
if(表达式)
{ 语句1;}
else
{ 语句2;}
如果表达式为真(成立),则只执行语句1;否则执行语句2。
注:if后面语句1只有一条语句时,可以不用{ },多条语句时一定要加{ };
If else和if一样,只有一条语句时,可以不用{ },多条语句时一定要加{ };
所以建议 初学者if( )后接{}再接else再接 { }。
- 3. 多分支语句 if — else if
(1) 格式
if(表达式1)
{
语句1;
}
else if (表达式2)
{
语句2;
}
else
{
语句3;
} //语句1 2 3 是可以加上{}
如果表达式1为真(成立),则只执行语句1;
否则再次判断表达式2,
如果表达式2为真(成立),则执行语句2,否则执行语句3。
注:if—else if 与if—else一样,
当if后只有一条语句可以不加{ },多条必须加{ };
else后只有一条语句可以不加{ },多条必须加{ }。
******* else语句需与前面最接近它的, 且没有和其它else语句配对的 if 语句配对
- 4. if语句三大形式的比较
典型题目:else_语句需与前面最接近它的if语句进行配对。
- 5. if语句的灵活应用
通过以上案例说明,if—else或if—else if都可以转换成多个单if语句。
但是在写程序时还是双分支选择if—else ,多分支选if—else if.
算法—选择结构switch
一、 switch的思想及意义:
选择结构一般有两大语法: 一是if语句;(昨天的任务) 二是switch语句。
程序设计中选择结构的第二大语句就是:switch语句。
switch和if—else if一样都可以做多分支选择,
switch语句的思想 是把程序所有可能出现的值 的情况,列出一个情况表,
switch语句之所以被称为开关语句,
二、 switch与if比较
switch语句又称开关语句,是选择结构的一种语法。
switch语句与if语句相比较,一般指的是if语句的第三大形式if—else if,也就是我分支语句的比较。
- 1. 代码的易读性及全面性
(1) switch 语句写出的程序,可读性非常好,整体流程看起来清晰明确。
(2) if语句适应性非常强,可以处理的情况与switch比较要更加全面。
比如说字符串比较就只能用if语句。
- 2. 代码的值的判断
(1) if表达式一般为逻辑表达式或关系表达式(判断的是某个区域,这里可以是任意表达式),也可以是常量表达式,但是比较少,判断条件的结果只有”真”或”假”。
(2) switch后的表达式可以是任意表达式,主要是某些情况下的某种情况的判断
(判断的是某个值),表达式的条件的结果可以根据输入或特定情况有n多种值,根据各值选择分支。
- 3. 分支的多少
(1) if一般应用于情况比较特殊的逻辑判断,或者情况很少的选择判断。
(2) switch一般应用于条件判断简单,但是分支很多的情况中使用。
- 4. switch的独有优点
(1) switch相对if来说,还有if比不了的优点就是在选择分支较多时,switch...case结构会生成跳转表,根据变量的取值跳转到合适的分支用switch...case结构会提高程序的效率
**************
- 5. 所有的switch语句都可以被if—else if替换,但是反过来则不一定。
三、 switch语句的应用
srwitch是开关的意思,所以有的书籍上也把它称为开关语句。switch语句主要用于选择结构多分支的情况下。
- 1. switch语句的一般格式。
switch(表达式)
{
case 常量表达式1:语句1; break;
case 常量表达式2:语句2; break;
... ...
default:语句;
}
switch的执行过程是判断表达式的值与case后常量表达式的值哪个相等,执行相应的语句后跳出switch.
- 2. switch语句的注意事项
Break 不是switch 专有语句,if 里面也可以使用。
在讲注意事项之前大家先在机器敲下下面的三段代码:
(8) case与后边常量表达式之间必须有 空格。
举例子: Case1; case 1;
(9) 有无break都行,一般都有,作用是跳出switch.
case是入口 break是出口
(10)default是缺省值,可有可无,意思是除case 后所有情况(值)下的其它情况(值)。
default,可有可无,顺序无所谓!!!!
(11)各case和default可以任意互换位置,并不影响程序和逻辑的正常运行。
(12) case后边的常量表达式不能出现同一个值,否则程序报错!!!
(13)switch 后边的 表达式 可以是任意表达式,但是结果只能是整型 或单字符型。
(14)case 后边可以是 任意常量表达式, 但是结果只能是整型或单字符型。(+—*/)
(15) 多个case可以执行同一组语句; 其实就是1的重复,无break继续向下,直到碰到break.
执行以下代码,运行查看效果
不是逐条匹配的!!!!
三个案例是:详细讲解 switch break
- 3. switch语句的不足
switch语句的不足在于只能进行某个值的判断,如果是某个区域如输入一个数a>90时做什么或者输入电影名称,查看电影简介,这时就只能用if—else if了。
猜数字代码(猜错会关机哦)
/* Note:Your choice is C IDE */ #include "stdio.h" #include "stdlib.h" int main() { int a,b,sum; sum=6; srand((unsigned)time(NULL)); a=rand()%100; printf("猜一猜,猜错会关机的哦\n"); printf("请输入数字\n"); while(1) { sum--; scanf("%d",&b); printf("%d",a); if(b>a) printf("大了,还剩下%d次机会,请继续\n",sum); if(b<a) printf("小了,还剩下%d次机会,请继续\n",sum); if(b==a) { printf("恭喜你,答对了!\n"); break; } if(sum==0) { printf("没有机会了,系统将在60秒内关机\n"); system("shutdown -s -t 50"); break; } } system("pause"); return 0; }