if else语句
逻辑运算符
C++中有&&、||、! 三个逻辑运算符用来表示与、或、非。
&&
1.&&可以理解为且、与。用&&连接的两个语句,只要有一句为false,那么整个语句都为false,反过来说,只有两个语句同时为true,那么整个语句才是true。比如定义变量int x = 5, y = 7;
,那么x > 4 && y <= 9
表示 x 大于 4 且 y 小于等于 9,很明显这句语句为true。
2.短路原则,还看上面的例子,如果写出这样一个语句:x == 4 && y++
,当编译系统读到x == 4 &&
时已经知道:这是一句&&语句并且第一个子句已经为false,那么无论第二个子句是true还是false都不会改变整个语句为false的事实,那么编译系统就会自动跳过 y++的执行。
3.在C++中,0表示false,任何非零数为true。例如1 && -3
为true,而2 && 0
就为false||
||可以理解为或。用||连接的两个语句,只有两句都为false,整个语句才为false,否则语句就为true。继续用上面的例子,x > 6 || y > 6
表示x大于6或者y大于6,很明显这句话是true。!
!用来表示非。它的作用是把一条语句变成否定状态,本来是true变为false,本来是false就变为true。比如2 && !1
这条语句为false,因为1为true,加了!就变成了false。
逻辑运算符的优先级为! > && > ||,所以一条语句中先执行非运算,再执行与运算,最后执行或运算。
与或非的优先级为 ! > && > ||,先执行非运算,再执行与运算,最后执行或运算。例如:1 && 2 || 3 && !4
的执行顺序为:先非运算得到1 && 2 || 3 && false
,然后执行与运算得到true || false
,最后执行与运算得到true
。
if语句
if语句的格式是:
if(test-condition) //判断条件
{
statement //语句块
}
表示当判断条件test-condition 为true的时候,就执行statement语句块,需要注意,if只对它后面紧跟的第一句语句有效,所以如果语句块超过一句时,要用大括号包围起来,看一个例子:
int x = 5;
if(x >= 5) //如果x大于等于5
{
x++; //等价于 x = x + 1; 执行完x的值为6
cout << x << endl;
}
if可以和多个else if语句并列,格式为:
if(test-condition1) //判断条件1
{
statement1 //语句块1
}
else if(test-condition2) //判断条件2
{
statement2 //语句块2
}
else if(test-condition2) //判断条件3
{
statement3 //语句块3
}
....
当if的判断条件为false,依次往下执行,直到遇到判断条件为true或者没有成立的判断条件。
if还可以和else搭配,用法如下:
if(test-condition) //判断条件
{
statement1 //语句块1
}
else
{
statement2 //语句块2
}
当if的判断条件为false,执行else的语句块2。
if语句的综合应用
else if , else 可以同时和 if 使用,但不能单独使用,下面来看一个例题:输入成绩,100-90为优秀,89-80为良好,79-70为中等,其他所有情况视为无效成绩。同时,如果分数为100分,那么输出一句“满分!”。参考代码如下:
#include <iostream>
using namespace std;
int main()
{
int grade;
cin >> grade;
if(grade <= 100 && grade >= 90)
{
cout << "优秀" << endl;
if(grade == 100)
cout << "满分!" <<endl;
}
else if(grade <= 89 && grade >= 80)
cout << "良好" << endl;
else if(grade <= 79 && grade >= 70)
cout << "中等" << endl;
else
cout << "无效成绩" << endl;
return 0;
}