C++学习第三周第5次
一、if多层嵌套
例: 3 输入一个成绩值,判断它的成绩等级,并输出结果(标准:[90-100]为优秀,[80,90)为良好,[70,80)为中等 ,[60,70)为及格,60以下为差
格式1:
int a[No],i,j,t, x,L,H,M;
srand(time(NULL));
int cj;cout<<"请输入成绩:";cin>>cj;
if(cj<0 || cj>100) cout<<"成绩超过范围"; //输入的成绩不在0-100无意义
else //判断0-100的成绩等级情况
if(cj>=90) cout<<"优秀";
else
if(cj>=80) cout<<"良好";
else
if(cj>=70) cout<<"中等";
else
if(cj>=60) cout<<"及格";
else
cout<"不及格";
格式2:
int cj;cout<<"请输入成绩0-100:";cin>>cj;
if(cj>=70)
{ if(cj>=80)
{ if(cj>=90)
{ cout<<"优秀";
}
else
{ cout<< "良好";
}
}
else { cout<<"中等"; } //配对if(cj>=80)
}
else //针对cj>=70不成立的
{ if(cj>=60)
{ cout<<"及格"; }
else
{ cout<<"不及格"; }
}
二、问号表达式
格式: (条件)? 表达式1: 表达式2
当条件成立时,此表达式返回表达式1的结果,不成立时返回表达式2的结果. 能替代在求值情况下的if语句,并不能完全取代if语句
例1: 输入a,b,输出大数 (求值,求大数)
int a,b,t; cout<<"请输入a:";cin>>a;
cout<<"请输入b:"; cin>>b;
t=(a>=b)?a:b;
//完全等效于
/*if(a>=b)
t=a;
else
t=b;*/
cout<<endl<<"大数是:"<<t;
三、关系运算符和关系表达式
比较两值的大小,相等:(1) > >= < <= (2) == != 同时出现在表达式中,(1)优先级高于后面(2)
int a,b,c;
a=5>2!=3; //先算5>2结果为真(1),再算1!=3又为真(1),最后a=1;
b=1!=4>2; //先算4>2结果为真(1),再算1!=1结果假(0),最后b=0
cout<<a<<" "<<b; //输出1 0
说明:赋值运算优先级特别低的
四、switch语句
1 格式:
Switch(表达式)
{
case 常量1: 语句序列1 break;
case 常量2: 语句序列2 break;
case 常量3: 语句序列3 break;
…….
case 常量n: 语句序列n break;
default: 语句序列n+1
}
五、选择结构程序例题
例题:闰年判断 输入一个年份y,判断是否闰年。条件: 满足二条件之一都是闰年:
(1)能被4整除,但不能被100整除 (2)能被400整除.
int y; cin>>y;
if ( ( y%4==0 && y%100!=0)||( y%400==0) )
cout<<endl<<"是闰年";
else cout<<endl<<"不是闰年";
改写为:
int y; cin>>y;
if ( y%4==0 && y%100!=0 || y%400==0 )
cout<<endl<<"是闰年";
else cout<<endl<<"不是闰年";