C/C++语言程序设计
第4讲 分支结构2
2015/9/15 HZAU 理学院计算机系 姚娟 1
第4讲 分支结构2
条件运算符与条件表达式
对于下述表达式求值语句: if (<表达式1>) <变量>=<表达式2> else <变量>=<表达式3>
可改写为:
<变量>=<表达式1>?<表达式2>:<表达式3>
条件运算符书写方式: ? : 是三目运算符
2
第4讲 分支结构2
功能: 先判表达式1,若为true,则将表达 式2的值赋值给变量,否则将表达式3 的值赋值给变量。 例: max=a>b?a:b ABS=x<0?-x:x
3
第4讲 分支结构2
注意: 1. 条件运算符优先于赋值运算符. 2. 条件运算符高于赋值运算符,低于逻辑 运算符 3. 条件运算符结合性为从右至左。 4. 条件表达式不能取代一般的if语句,只有 当if的两个分支为给同一变量赋值时才可 替代if。 5. 表达式1、表达式2、表达式3的类型可以 不同。
4
第4讲 分支结构2
例1、将输入的字母转换为大写字母
#include <iostream> 可写成 ch-=32 using namespace std; void main() { char ch; cout<<"请输入一个英文字符:"; cin>>ch; if (ch>='a' && ch<='z') ch=ch-32; ? 修改程序使大写字 ?母转化成小写字母 如何把此程序的条件 cout<<"转换以后的字符为:"<<ch<<endl; 语句改成条件表达式 }
5
第4讲 分支结构2
sizeof 运算符
?语法形式 sizeof (类型名) 或 sizeof (表达式) ?结果值: “类型名”所指定的类型或“表达式”的结 果类型所占的字节数。 ?例: sizeof(short) sizeof(x)
6
第4讲 分支结构2
逗号运算和逗号表达式
?格式 表达式1,表达式2 ?求解顺序及结果 先求解1,再求解2,最终结果为表达式2 的值 ?例 a=3*5 , a*4 最终结果为60
提问?:(b=3*2, b*4), b+12
值为6
7
第4讲 分支结构2
特殊的多分支结构
例2
输入一个0~6的整数,转换成星期输出。 #include <iostream> using namespace std; void main() { int day; cout<<"请输入0~6之间的整数:"; cin>>day; switch (day) {
8
第4讲 分支结构2
case 1: cout<<"星期一"<<endl; break; case 2: cout<<"星期二"<<endl; break; case 3: cout<<"星期三"<<endl; break; case 4: cout<<"星期四"<<endl; break; case 5: cout<<"星期五"<<endl; break; case 6: cout<<"星期六"<<endl; break; default: cout<<"超出范围!"<<endl; break; }
9
9
}
第4讲 分支结构2
switch 语句
?一般形式
可以是整型、字符型、枚举型 switch (表达式) { case 常量表达式 1:语句1 case 常量表达式 2:语句2 每个常量表达式的值 ┆ 不能相同,次序不影 响执行结果。 case 常量表达式 n:语句n default : 语句n+1 } 可以是多个语句,但不 必用{ }。
?
执行顺序
以case中的常量表达式值为入口标号,由此开始顺序执 行。因此,每个case分支最后应该加break语句。
10
第4讲 分支结构2
使用switch语句应注意的问题
? 常量表达式的值必须
互不相等,否则会有二异性。 ? 表达式、判断值都是int型或char型。
? case分支可包含多个语句,且不用{ }。
? 若某组语句不含break语句,则本组语句执行完 毕后将继续执行下一组语句。 ? 常量表达式的值必须互不相等,否则会有二异性。 ? case顺序无关紧要。
11
第4讲 分支结构2
例3:将百分制的分数转换为5级制分数 ?编写程序,将百分制的学生成绩转换为优秀、 良好、中等、及格和不及格的5级制成绩。 标准为:
? ? ? ? ? 优秀: 100-90分; 良好: 80-89分; 中等: 70-79分; 及格: 60-69分; 不及格: 60分以下。
12
第4讲 分支结构2
#include <iostream> using namespace std; void main() { int old_grade, new_grade; cout<<"Please input the score: "; cin >>old_grade;
13
第4讲 分支结构2
switch (old_grade/10) //根据转换值进行分支选择 { case 10: case 9: new_grade = 5; break; case 8: new_grade = 4; break; case 7: new_grade = 3; break;
14
第4讲 分支结构2
}
case 6: new_grade = 2; break; default: new_grade = 1; } cout<<"Before transformed, the score is "<<old_grade<<endl; cout<<"After transformed, the score is "<<new_grade<<endl;
15
第4讲 分支结构2
预习:P52
循环结构
作业:课本P17 5. P43 1.5.
16
第4讲 分支结构2
结 束 语
学好计算机的唯一途径是
你的编程能力与你在计算机上投入的时间
17
bbs.99jianzhu.com内容:建筑图纸、PDF/word 流程,表格,案例,最新,施工方案、工程书籍、建筑论文、合同表格、标准规范、CAD图纸等内容。