c++语言 选择结构程序设计

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
int a = 1, b = -1;
eilfse…(a…> 0) else……if (b > 0)
if (a > 0) {
a++;
if (b > 0)
else
a++;
a--;
}
cout<<"a = %d\n";
else
} 运行结果:a = 0
a--; cout<<"a = %d\n";
}
运行结果:a = 1
float a, b = 4.0;
不可为浮点型
cin>>a;
表达式
switch ( a )
{
case 1: b = b + 1; break;
case 2: b = b - 1; break;
}
cout<<“b=“<<b;
使用switch语句注意事项
(2) case后面语句(组)可加{ }也可以不加{ },但一 般不加{ }。
int a, b, max; cout<<“请输入两个整数:”; cin<<a<<b; if (a > b)
max=a; else max=b; cout<<max;
课堂练习
编写程序实现汽车超速判断:要求从键盘输 入速度,然后判断其是否超速。如果速度超过 60,则显示“超速”,否则显示“正常”。
1. if语句
例 输入两数并判断其大小关系
#include <iostream>
using namespace std;
void main ( )
{
int x, y;
cout<<"Enter integer x, y: ";
cin>>x>>y;
if (x != y)
if (x > y) cout<< "X > Y\n"; 运行结果:
default :
cout<<" F"; break;
}
课堂练习2.
写程序实现输入一个整数,如果分数为: 90-100输出“A”; 80-89 输出“B”; 70-79 输出“C”; 60-69 输出“D”; 59以下输出“F”; 其它, 输出“输入错误”。
使用switch语句注意事项
(5)多个case子句,可共用同一语句(组)。
使用switch语句注意事项 (6) case后面的“常量表达式”仅起语句标号作用,并
不进行条件判断。系统一旦找到入口标号,就从此标号开始 执行,不再进行标号判断,所以必须加上break语句,以便结 束switch语句。
void main ( )
运行结果:
{
No void main ( )
运行结果:
例:当a的值是1、2、3时,将b的值加2,当a的值是4、5、 6时,将b的值减2。
int a, b = 4; cin>>a; switch (a) { case 1: case 2: case 3: b += 2; break; case 4: case 5: case 6: b -= 2; break; default: b *= 2; break; } cout<<" b = “<<b;
cout<<" A"; break;
case score >= 80 && score < 90 : cout<<" B"; break;
case score >= 70 && score < 80 : cout<<" C"; break;
case score >= 60 && score < 70 : cout<<" E"; break;
case 'A' : printf ("All\n"); break;case 'N' : printf ("No\n");
default : printf ("Yes,No or All\n"ca);se 'A' : printf ("All\n"); break;
}
default : printf ("Yes,No or All\n");
}
}
}
使用switch语句注意事项 (7) case子句和default子句如果都带有break子句,那
么它们之间顺序的变化不会影响switch语句的功能。
if (expr1) if (expr2) statement1 else statement2
内嵌if
if (expr1) statement1
else if (expr3) statement3 else statement4
内嵌if
if (expr1) if (expr2) statement1
}
case 1: b = b + 2; break;
}
cout<<"b =", b);
/c/a{se}可1在加前可面不已加使用
课堂练习1:
使用switch语句按照考试成绩的等级打印出百分制 分数段。
成绩等级对应的分数段如下:
A:90-100; B:80-89 ; C:70-79 ; D:60-69 ; F:59以下;
#include <iostream>
#include <iostream>
if u(…sin…g)namespace std; voifid(…m…ai)n ( ) { if (……)
intelase=…1…, b = -1;
using namespace std; void main ( ) {
T
表达式3
F
T
T
表达式n
T
语句1
语句2
语句3
语句n
F
语句n+1
例如:下面的程序段是判断输入字符的种类。 char c; cout<<“请输入字符:”; cin>>c; if (c >= '0' && c <= '9') cout<<"The character is a digit\n"; else if (c >= 'A' && c <= 'Z') cout<<"The character is a capital letter\n"; else if (c >= 'a' && c <= 'z') cout<<"The character is a lower letter\n"; else cout<<"The character is other character\n";
使用switch语句注意事项
(4) 每个case后面必须是“常量表达式”,表达式中不 能包含变量。
例:按成绩分成A、B、C、D、E、F几个等级。
char score;
cout<<" Enter Score: "; cin>>score;
case 后面包含变量
switch (score)
{
case score >= 90 :
第3章 选择结构程序设计
第3章:选择结构程序设计
程序结构
顺序结构 选择结构 循环结构
前面已讨论 本章讨论 下章讨论
控制语句 用来实现一定的控制功能的语句称为控制语句 。C++
语言用控制语句来实现选择结构和循环结构。C++语言有 九种控制语句。可分成以下三类:
分支 循环 辅助控制
if( )~else~ switch for( )~ while( )~ do~while( ) continue break goto return
if_else_if形式 格式:
执行流程:
if(表达式1) else if (表达式2) else if (表达式3)
…… else if (表达式n) else 语句n+1;
语句1; 语句2; 语句3;
语句n;
例如:请编写表程达序式1段实现F判断输入字符的种类: 数字、大写字母、表达小式写2字母或F其他字符。
课堂练习
1.编程实现根据输入x的值,输出y。 x和y满足数学分段函数关系如下:
课堂练习
2.编程实现判断成绩的等级。根据输入的成绩, 判断输出成绩的等级:
90分以上(包含90):A; 80-89:B; 70-79:C; 60-69:D 60分以下(不包含60):F。
if语句注意事项
(例1): iiff语(a 句> b后) 面的表达式必例须: i用f (括a >号b括) 起来 。 (2) 表达a+式+;通常是逻辑表达式{或关系表达式,但也 可以是其它任b+何+;表达式,如赋值表达a式++等; ,甚至也可以是 一就个是变假例量。:。e{ls只e 要表达式非零时,表例}达: b式+的+;值就为真,否则 语句,(3例如)#uifis:果在ni(ncaiab要iflgu=f=x=nd想语5>a0e1)m;;在句<0语ei满o的句sspt;足三arce条种ea/所/m表s件形以t>d达其时;式式后的执中的值例行,语永:句e{一所#u远lii总ssnf为组i有en是c(非xlg(的要u0多>nd,执语ae0个行m)<句的ei)os语应sptar句为ceea,单mst则个>d;必 须把这一vifo组}i(db语)mco句语aui句t用n<;({<)“}x括>//起0等”价来; 于组if成(b !一=v0个oa) i语cd=复o句mu0合;t;a<i语<n“句(x)>。0但”;要注 意的是在{ }之后不能再加分号。 { b = 1; (4) 在intixf语= 句0; 中,如果表达式}是i一nt个x =判0断; 两个数是 否相等的关if (系x 表==达0)式,要当心不要将i=f=(写x =成0了) 赋值运算符
else 语句2;
语句1
语句2
执行流程:
例如:下面的程序段是用简单的if语句实现输入两个整数, 输出其中的大数。
int a, b, max; cout<<“请输入两个整数:”; cin<<a<<b; max=a; if (max < b)
max=b; cout<<max;
例如:下面的程序段用if…else形式实现输出两个整数中的最 大数。
else statement3
内嵌if
if (expr1)
if (expr2) statement1
else
statement2
内嵌if
else
if (expr3) statement3 内嵌if
else
statement4
2.
switch语句(开关分支语句) 一般形式:
执行过程:
switch ( 表达式) { case E1:
(3) 每个case后面“常量表达式”的值,必须各不相同, 否则会出现相互矛盾的现象。
ics{nwis{}ncctwiaacc>tiaaassct>eessh,caeehb12;(12::a(=::)ibb4){;==bbbb==+*bb22+-;;
1; break; 1b; rebarke;ak; break;
char ch;
{
No
ch = getch ( ); switch ( ch )
//假设输入为:Ncchha=r
ch; getch
(
);
//假设输入为AL:LN
{
switch ( ch )
case 'Y' : printf ("Yes\n"); brea{k;
case 'N' : printf ("No\n"); break;case 'Y' : printf ("Yes\n"); break;
else
cout<<"X < Y\n"; Enter integer x, y: 12, 23
else
X<Y
cout<<"X == Y\n";
Enter integer x, y: 12, 6
}
X>Y
Enter integer x, y: 12, 12
X==Y
if语句嵌套: 一般形式:
=。
cout<<“x = 0\n”;
cout<<“x = 0\n”;
else
else
பைடு நூலகம்
cout<<“x != 0\n”;
cout<<“x != 0\n”;
} 运行结果:x = 0
} 运行结果:x != 0
if_else 配对原则
C++语言规定,在缺省{ }时,else总是和它
上面例离: 它最近的未配对的i例f配: 对
本章讨论
3.1 选择结构的程序设计
1. if语句
简单if语句形式 格式:
if (表达式) 语句;
T
表达式
F
语句
执行流程:
例如:请:用请if用i_fe_简lelss单ee形形if语式式句实形现式输实出现两输个入整两数个中整的数最,大输数出。其中
的大数。 格式:
T 表达式
F
if (表达式) 语句1;
语句组
1;
break;
switch
case E2: 语句组 2;
表达式
break;
E1 语句组1
E2 语句组2
case En
…... 语句组n
……. cadseefaultEn: 语句组 语句组 n;
break;
[default:
语句组 ;
break;]
}
使用switch语句注意事项
(1) switch后面的“表达式”,可以是int、char和枚举 型中的一种,但不可为浮点型。
相关文档
最新文档