1.5 if语句与表达式
1.5 if语句与表达式
1. 三大结构的认识
- 顺序结构:从上至下,从左至右
- 分支结构(选择结构):if, switch
- 循环结构:for, while
2. 关系表达式
等于 | 不等于 | 大于 | 小于 | 大于等于 | 小于等于 |
---|---|---|---|---|---|
== | != | > | < | >= | <= |
3. 逻辑表达式
&& | 逻辑与 | a&&b | 同真为真 | 1&&1=1 | 1&&0=0 |
---|---|---|---|---|---|
|| | 逻辑或 | a||b | 同假为假 | 1||0=1 | 0||0=0 |
! | 逻辑非 | !a | 非假即真,非真即假 | !0=1 | !1=0 |
4. if语句
bool flag = true;
布尔类型,只有两种格式:true, false
也可以记作1和0,0表示false, 非0表示true
bool flag = true;
if(flag){ // 如果flag为真,就执行{}中的内容,否则不执行
cout<<1<<endl;
}
bool flag=0;
if(flag){ // 如果flag为真,就执行{}中的内容
cout<<1<<endl;
}else{ // 如果if不执行,就执行else{}中的内容
cout<<2<<endl;
}
bool flag=0;
if(flag){ // 如果flag为真,就执行{}中的内容,否则不执行
cout<<1;
}else if(flag){ // 如果前面没有执行,且满足现在的if,就执行
cout<<2;
}else if(flag){ // 如果前面没有执行,且满足现在的if,就执行
cout<<3;
}else{ // 如果前面没有执行,就执行else{}中的内容
cout<<4;
}
5. 案例练习
【题目描述】输入一个整数,输出该数的绝对值。
如果该数是负数,在输出该数前加个提示"注意负数!"
输入样例:-10
输出样例:
注意负数!
10
#include<iostream>
#include<cmath>
using namespace std;
int main(){
int n; cin>>n;
if(n < 0){
cout<<"注意负数!\n";
}
cout<<abs(n);
return 0;
}
【题目描述】输入一个整数,判断其是奇数还是偶数
输入样例:10
输出样例:10是偶数
- 程序1
#include <iostream>
using namespace std;
int main() {
int n; cin>>n;
if( n%2 == 0 ) {
cout<<n<<"是偶数"<<endl;
}
if(n%2!=0) {
cout<<n<<"是奇数"<<endl;
}
return 0;
}
- 程序2
#include<iostream>
using namespace std;
int main(){
int n; cin>>n;
if(n%2==0) //判断两个数相等用双等于
cout<<n<<"是偶数";
}else{
cout<<n<<"是奇数";
}
return 0;
}
【题目描述】星星公司致力于信件快递服务,收费标准为:500克及以内6元,超过500克9元
输入样例:500
输出样例:收费6元
#include<iostream>
using namespace std;
int main(){
int w, money=6; cin>>w;
if(w > 500){
money = 9;
}
cout<<"收费"<<money<<"元";
return 0;
}
【题目描述】输入年份year,输出该年份是否为闰年。
判断闰年的方法:年份能被4整除但不能被100整除 或者 年份能被400整除的称为闰年。
输入样例:2020
输出样例:2020是闰年
输入样例:2021
输出样例:2021不是闰年
#include<iostream>
using namespace std;
int main(){
int year; cin>>year;
bool flag=(year%4==0&&year%100!=0)||(year%400==0);
if(flag){
cout<<year<<"是闰年";
}else{
cout<<year<<"不是闰年";
}
return 0;
}
6. 条件表达式
格式:<表达式1>?<表达式2>:<表达式3>
条件表达式要求有三个操作对象,"?"和":"一起出现在条件表达式中,称三目(元)运算符,它是C++中唯一的一个三目运算符。
条件表达式的运算规则:
(1)计算表达式1的值。
(2)若表达式1的值为真(或非0),则只计算表达式2,并将其结果作为整个表达式的值。
(3)反之,若表达式1 的值为假(或为0),则只计算表达式3,并将其结果作为整个表达式的值。
举例:求 a,b 的最大值
int tmax = a>b ? a:b;
举例:求a,b的最小值
int tmin = a<b ? a:b;