概念说明
1. if 与 switch 的作用与区别
if 语句用于根据一个条件表达式的结果来决定是否执行某个代码块。它可以处理各种类型的条件,包括范围判断和复杂的逻辑表达式。
int num = 5;
if (num > 3) {
cout << "num 大于 3" << endl;
}
switch 语句用于根据一个整数或字符类型的表达式的值,在多个离散的常量值选项中选择一个执行相应的代码块。
int num = 5;
switch (num) {
case 1:
cout << "num 是 1" << endl;
break;
case 5:
cout << "num 是 5" << endl;
break;
default:
cout << "num 不是 1 也不是 5" << endl;
}
2. if 的使用与注意事项
- 使用:if 后面的括号内是一个条件表达式,结果为真(非零)时执行紧跟其后的代码块。
int age = 20;
if (age >= 18) {
cout << "成年" << endl;
}
3. if else 的使用与注意事项
- 使用:当 if 条件不满足时执行 else 后面的代码块。
int score = 70;
if (score >= 60) {
cout << "及格" << endl;
} else {
cout << "不及格" << endl;
}
- 注意事项:单个的if 语句或者if else语句
4. if - else if - else 的使用
- 使用:用于处理多个不同条件的判断,按照顺序依次判断条件,执行第一个满足条件的代码块。
```cpp
int num2 = 80;
if (num2 >= 90) {
cout << "优秀" << endl;
} else if (num2 >= 80) {
cout << "良好" << endl;
} else if (num2 >= 60) {
cout << "及格" << endl;
} else {
cout << "不及格" << endl;
}
```
注意
在 C++ 中,当 if 或 else 后的执行语句只有一行时,可以省略中括号 {} 。
#include<bits/stdc++.h>
using namespace std;
int main() {
int num = 5;
if (num > 3)
cout << "num 大于 3" << endl;
else
num = 10;
}
但如果省略了中括号,而后面跟着多行执行语句,只有第一行被视为 if 或 else 的执行部分,其他行将不受条件控制而始终执行。
#include<bits/stdc++.h>
using namespace std;
int main() {
int num = 5;
if (num > 3)
cout << "num 大于 3" << endl;
num = 20; // 这里不受 if 条件控制
else
num = 10;
num = 30; // 这里不受 else 条件控制
}
为避免出错和增强代码可读性,即使只有一行执行语句,也建议使用中括号
5. switch 的使用与注意事项
使用:根据表达式的值与 case 后面的常量值进行匹配,执行相应的代码块。
char grade = 'B';
switch (grade) {
case 'A':
cout << "优秀" << endl;
break;
case 'B':
cout << "良好" << endl;
// 缺失 break 会导致贯穿到下一个 case
case 'C':
cout << "中等" << endl;
break;
default:
cout << "未知等级" << endl;
}
- 注意事项:
- case 后面必须是常量表达式 不可以是表达式。
- 每个 case 分支通常需要使用 break 语句来避免贯穿到下一个 case,除非有意希望实现贯穿效果
#include<bits/stdc++.h>
using namespace std;
int main() {
int num = 2;
switch (num) {
case 1:
cout << "这是 1" << endl;
break;
case 2:
cout << "这是 2" << endl;
case 3:
cout << "这是 3" << endl;
break;
case 4:
cout << "这是 4" << endl;
default:
cout << "这是默认情况" << endl;
}
return 0;
}
在上述代码中,当 num
的值为 2
时,由于没有在 case 2
后面添加 break
,所以会继续执行 case 3
中的代码。而在 case 3
中有 break
,所以执行完 case 3
后就会停止继续向下执行。
逻辑运算符
以下是关于 C++ 中逻辑运算符(&&
(逻辑与)、||
(逻辑或)、!
(逻辑非))的知识点总结及代码示例:
逻辑与(&&):
只有当两个操作数都为真时,结果才为真。
#include<bits/stdc++.h>
using namespace std;
int main() {
int num1 = 5, num2 = 10;
if (num1 > 0 && num2 > 0) { // 只有 num1 和 num2 都大于 0 时条件成立
cout << "两个数都是正数" << endl;
}
return 0;
}
逻辑或(||):
只要两个操作数中有一个为真,结果就为真。
#include<bits/stdc++.h>
using namespace std;
int main() {
int num1 = -5, num2 = 10;
if (num1 > 0 || num2 > 0) { // 只要 num1 或者 num2 大于 0 时条件成立
cout << "至少有一个数是正数" << endl;
}
return 0;
}
逻辑非(!):
对操作数的逻辑值取反。
#include<bits/stdc++.h>
using namespace std;
int main() {
int num = 5;
if (!(num < 0)) { // 等价于 if (num >= 0)
cout << "数字不是负数" << endl;
}
return 0;
}
二 题目说明
3035 判断三角形
判断三角形 的思路就是输入三个数字之后判断两数之和大于等于第三个数,所以要写三个判断条件同时成立,中间用&&连接
#include <iostream>
using namespace std;
int main(){
int a,b,c;
cin>>a>>b>>c;
if(a+b>c&&a+c>b&&b+c>a)
cout<<"YES"<<endl;
else cout<<"NO"<<endl;
return 0;
}
3036 判断闰年
如果 (year 能被 4 整除 并且 (year 不能被 100 整除 或者 year 能被 400 整除))
输出 “是闰年”
否则
输出 “不是闰年”
#include <iostream>
using namespace std;
int main(){
int n;
cin>>n;
if(n%4==0&&n%100!=0||n%400==0)
cout<<"YES"<<endl;
else cout<<"NO"<<endl;
return 0;
}
3037 判断成绩等级
这个题目考验大家对if的使用,第一个条件如果不成立代表第二个条件执行的时候其实还有一个隐藏条件也成立,就是x<90,所以可以省略不写这个x<90的条件
#include <iostream>
using namespace std;
int main(){
int x;
cin>>x;
char ch;
if(x>=90)
ch='A';
else if(x>=70)
ch='B';
else if(x>=60)
ch='C';
else ch='D';
cout<<ch<<endl;
return 0;
}
3038 车辆尾号限行
这个题目的条件都是或者的关系,要仔细读题
#include <iostream>
using namespace std;
int main(){
//快码加鞭:车辆尾号限行
int n;
cin>>n;
if(n==5||n==0) cout<<"Monday"<<endl;
else if(n==1||n==6) cout<<"Tuesday"<<endl;
else if(n==2||n==7) cout<<"Wednesday"<<endl;
else if(n==3||n==8) cout<<"Thursday"<<endl;
else cout<<"Friday"<<endl;
return 0;
}
3492 公园门票
注意计算的时候括号问题,以及if语句后单条语句是可以不加{}的,多条语句一定要注意{}的书写
#include <iostream>
using namespace std;
int main(){
int x,y;
cin>>x>>y;
if(x>y) cout<<90*y+60*(x-y)<<endl;
else if(x<y) cout<<90*x+40*(y-x)<<endl;
else cout<<90*x<<endl;
return 0;
}
3493 简单计算器
注意是输入的是字符还是整数
#include <iostream>
using namespace std;
int main(){
int a,b;
cin>>a>>b;
char c;
cin>>c;
if(c=='+')
cout<<a+b<<endl;
else if(c=='-')
cout<<a-b<<endl;
else if(c=='*')
cout<<a*b<<endl;
else if(c=='/')
cout<<a/b<<endl;
else
cout<<"error"<<endl;
return 0;
}
3039 年龄划分
这个和等级判断很相似噢
#include <iostream>
using namespace std;
int main(){
int age;
cin>>age;
if(age>=0&&age<=6)
cout<<"child";
else if(age>=7&&age<=17)
cout<<"teenage";
else if(age>=18&&age<=40)
cout<<"youth";
else if(age>=41&&age<=65)
cout<<"midlife";
else if(age>=66)
cout<<"old";
return 0;
}
3040 邮寄包裹
注意这个题还得判断是否超出自己持有的钱的数额了
#include <iostream>
using namespace std;
int main(){
int wei;
cin>>wei;
int money=0;
if(wei<=10) money=wei*1;
else if(wei>10&&wei<=20) money=wei*2;
else if(wei>20&&wei<=30) money=wei*3;
if(money>0)
cout<<money;
else cout<<"overweight";
return 0;
}
3047 自定义的计算器【switch】
#include <iostream>
using namespace std;
int main() {
//1、接收输入的两个数字和一个字符
int x, y;
char c;
cin >> x >> c >> y;
//2、根据输入的运算符号,判断要进行哪种运算
switch(c){
case '+':cout << x + y << endl;break;
case '-':cout << x - y << endl;break;
case '*':cout << x * y << endl;break;
case '/':cout << x / y << endl;break;
case '%':cout << x % y << endl;break;
}
return 0;
}
3048 停车计费【switch】
#include <iostream>
using namespace std;
int main(){
//1、接收输入的停车小时数
int n;
cin >> n;
//2、记录停车的总费用
int m=0;
//3、根据小时数,计算停车的总费用
switch(n){
case 1: m=10;break;
case 2: m=10+15;break;
default: m=10+15+(n-2)*20;break;
}
//4、输出停车总费用
cout << m;
return 0;
}
3495 成绩等级与分数【switch】
和if很相似,但是我们使用switch校验字符会更加方便
#include <iostream>
using namespace std;
int main(){
char c;
cin>>c;
switch (c) {
case 'A':
cout<<"90~100";
break;
case 'B':
cout<<"80~90";
break;
case 'C':
cout<<"60~80";
break;
case 'D':
cout<<"fail";
break;
default:
cout<<"error";
break;
}
return 0;
}
3049 大白老师的工资【switch】
#include <iostream>
using namespace std;
int main(){
//1、保存大白老师的原始工资8000
int n=8000;
//2、接收输入评级
char c;
cin >> c;
//3、根据评级,计算大白老师下一年的工资
switch(c){
case 'A': n=n+500; break;
case 'B': n=n+200; break;
case 'C': break;
case 'D': n=n-200; break;
case 'E': n=n-500; break;
default:cout<<"error"<<endl;
}
//4、输出计算结果
cout << n << endl;
return 0;
}
标签:case,std,cout,int,基础知识,选择,switch,using,include
From: https://blog.csdn.net/weixin_43454619/article/details/143411173