登录以参加训练计划
计算机的程序语句是一行行读取并执行的,但有时候我们需要根据条件不同,执行不同的语句块。这就是选择语句的主要作用。
选择语句有固定的写法,以下分别讨论:
1、if 选择语句
类型(1)单分支结构
if( `条件表达式`){
语句1;
}
功能:
如果条件表达式的值为真,即条件成立,语句1被执行。否则语句1被忽略。
说明:
上面的”上面的条件表达式“必须用圆括号括起来。
注意:
关系运算符==用来表达符号的左右两边是否相等,不要写成赋值号=。
举个栗子:
#include<iostream>
using namespace std;
int main(){
int score=90;
if (score>=90){
cout<<"优秀";
}
}
以上是if else语句的简单应用,还有以下几种格式。
类型(2)if -else(双分支)
if( 条件表达式){
语句1;
}else{
语句2;
}
功能:
如果条件表达式为真,执行语句1,如果为假,执行语句2。
注意:
if 语句允许嵌套,即语句1或者语句2也可以是if语句,当if语句嵌套时,约定else总是和最近一个if语句配对。
举个栗子:
#include<iostream>
using namespace std;
int main(){
int score=90;
if (score>=90){
cout<<"优秀";
}else{
cout<<"通过";
}
}
类型(3)if -else if(多分支)
`if` ( `条件表达式1`){
语句1;
} else if('条件表达式2'){
语句2;
} else{
语句3;
}
2、三目运算符
c++有一个常用来代替if-else语句的操作符,这个操作符被称为三目运算符(?:),它是C++中唯一一个需要3个操作数的操作符。我们之前学的大多数是两目或者单目操作符,你能举些例子吗? 三目运算符是如何工作的呢?看下面的例子:
int x;
x=5>3?10:12;//x=10;
x=3==9?25:18;//x=18;
3、switch语句
用if语句可以使程序实现分支,但是出现分支比较多的时候,虽然可以用嵌套的if来解决,但是程序会显得复杂,凌乱。为方便多情况选择,C++提供了一种switch开关语句。
(1)语句格式:
switch(表达式){
case 常量表达式1:
语句序列1;
break;
case 常量表达式2:
语句序列2;
break;
.......
case 常量表达式n:
语句序列n;
break;
default:
语句序列n+1;
}
注意事项:
(1)上述语句中可以使用一个或多个case标识号,但只能使用一个default标识,或者省略整个default部分;
(2)多个case 标号可以共享同一个语句序列,只要没有break语句;
(3)每个case语句标由case 常量表达式 :组成,每个常量表达式通常为字面常量,如常数或字符。
执行过程:
执行过程分为以下3步:
(1)计算出switch后面的圆括号内表达式的值,为了方便讨论,我们假定为M,若它不是整数,将自动舍去小数部分,只取整数部分作为结果值。
(2)依次计算出每个case常量表达式的值,假定为M1、M2、M3、...,同样若不是整数则取整数部分。
(3)让M依次同M1、M2、M3、...进行比较,一旦遇到M与某个M1或者M2相等,则从对应标号的语句开始执行;
注意事项:
(1)通常要求执行完某个case后的一组语句序列后,不再执行其它case语句块,从而结束整个switch语句。为此我们需要break,在switch语句中执行到它时,将结束该switch语句。
(2)case语句后面的各常量表达式的值不能相同,否则会出现错误码。
(3)每个case或default语句后,可以包含多条语句,不需要用“{”和“}”括起来。
(4)各case子句的先后顺序可以变动,这不影响程序执行结果。
(5)default子句可以省略,default后的语句末尾可以不必写break。
举个栗子: 根据键盘上输入的数字,输出相应的英语是星期几。
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
switch (n) {
case 1:
cout << "Monday" << endl;
break;
case 2:
cout << "Tuesday" << endl;
break;
case 3:
cout << "Wednesday" << endl;
break;
case 4:
cout << "Thursday" << endl;
break;
case 5:
cout << "Friday" << endl;
break;
case 6:
cout << "Saturday" << endl;
break;
case 7:
cout << "Sunday" << endl;
break;
default:
cout << "Invalid input" << endl;
break;
}
return 0;
}
下面是常见的几种错误写法,注意避坑。
类型(1)
if
(){
}else
{
}else if
(){
}
注意:
else
一定要放在最后 并且只有一个else
4、逻辑关系符号
判断语句中主要出现这几种逻辑关系符号。跟我们在数学里学到的比较关系符用法一致。
<=
: 小于等于<
: 小于>=
:大于等于>
:大于==
:一个等于是赋值,两个等于是判断!=
:判断是否相同
5、逻辑运算符
多个判断语句之间也可以有运符,逻辑运算符跟我们在数学里面的逻辑运算用法一致,比如,“没带红领巾 && 没穿礼服”的同学请出列。和“没带红领巾 || 没穿礼服”的同学请出列的人数可能是不同的。
&&
: 与运算 当符号两边的都能满足才可以成立
||
: 或运算 只要符号两边的语句的其中一个成立即可
!
: 对当前的语句进行取反操作。
- 参加人数
- 18
- 创建人