1.关系运算符(<、>、<=、>=、=、!=)
运算符优先级:算数运算符>关系运算符(<、>、<=、>=这四个运算符的优先级大于==和!=的优先级)>赋值运算符
例:(1)'x'<'z' 看两者的ASCII码值,关系成立,则为真,输出结果为1;
(2)x==x>=y 先执行">="运算,其值为1,再执行"=="运算,表达式结果为0;
2.逻辑运算符(&&逻辑与、||逻辑或、!逻辑非)
(1)①A=0,B=1,则A&&B=0
②A=0,B=1,则A||B=1
(2)运算符的优先级:(由高级到低级排序)
1.() 2.!、+(正)、-(负)、++、-- 3.*、/、%
4.+(加)、-(减) 5.<、<=、>、>= 6.==、!=
7.&& 8.|| 9.=、+=、-=、*=、/=、%=
(3)短路计算:
对于"A&&B",如果已经计算出表达式A为假,那么整个表达式的值肯定为假,于是表达式B就不需要再继续下去了;
对于"A||B",如果已经计算出表达式A为真,那么整个表达式必定为真,于是表达式B不必再计算下去了。
例: #include<iostream>
using namespace std;
int main(){
int a,b,c,d;
a=2,b=3,c=0;
d=(a>b)&&(c=4);
cout<<d<<" "<<c<<endl;
return 0;
}
(例题中,由于"a>b"不成立,根据"短路计算",可以确定d为0,而且不会去执行"c=4"的赋值计算,所以输出"0 0"。
3.if语句
格式:if(表达式)
语句1;
else
语句2;
(如果表达式值为真,那么执行语句1,否则执行语句2)
4.程序中不能连比较 如:x≤y≤z,要写成x<=y&&y<<z。
5.if语句的嵌套:(通俗来说,就是if语句中再分出一个if语句,即if语句可以嵌套很多层)
(1)if与else的配对关系:程序中的else子句总是与离它最近的前面一个if子句配对;
例:#include<iostream>
using namespace std;
int main(){
int x=4,y=3,z=2;
if(x<=y)
if(y<=z)cout<<"YES"<<endl;
else cout<<"NO"<<endl;
return 0;
}
(该程序不会输出任何结果,因为其中的else子句与内层的if(y<=z)配对,而不与外层的if(x<=y)配对,因此外层的if语句没有配对的else子句,所以不输出碰到结果。
(2)多层嵌套的格式举例:
if(表达式1)cout<<
else
if(表达式2)
if(表达式3)cout<<
else cout<<
else cout<<
6.条件表达式:(可实现有选择的取值)
格式: <表达式1>?<表达式2>:<表达式3>
运算规则:首先计算表达式1的值,若表达式1的值为真,则只计算表达式2,并将其结果作为整个表达式的值;否则,只计算表达式3,并将其结果作为整个表达式的值。
6.switch语句
(1)(分类情况特别多时,如果用if语句嵌套实现,层数太多,容易出错,可用switch语句)
(2)格式: switch(表达式){
case 常量表达式1:语句组1;break;
case 常量表达式2:语句组2;break;
...
case 常量表达式n:语句组n;break;
default:语句组n+1;
}
(break表示语句结束)
(3)例:思考分别输入"A""B""C",则程序输出什么。
#include<iostream>
using namespace std;
int main(){
char ch;
cin>>ch;
switch(ch){
case'A':
case'B':
case'C':cout<<"Pass"<<endl;break;
}
}
(因为三个case子句共用一个语句组 cout<<"Pass"<<endl;break; 所以输出结果均为"Pass" )
第三单元 分支结构程序设计(if语句和switch语句)
最新推荐文章于 2023-01-11 17:38:08 发布