首页 > 其他分享 >基础知识-7-选择结构【if switch】

基础知识-7-选择结构【if switch】

时间:2024-10-31 18:20:35浏览次数:9  
标签:case std cout int 基础知识 选择 switch using include

概念说明

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

相关文章

  • 苏州高新技术企业认定代理机构的作用以及选择标准
    苏州高新技术企业认定代理机构是指专门协助企业在苏州地区申请高新技术企业认定的专业服务机构。这些机构通常具备丰富的经验和专业知识,能够帮助企业准备和提交必要的申请材料,确保企业顺利通过高新技术企业的评审。本文将探讨苏州高新技术企业认定代理机构的作用、选择标准以及......
  • 嵌入式课程day04-C语言运算符和选择结构
    2.3运算符2.3.1运算符介绍运算符:具有一定运算规则的符号。操作数:运算符的操作对象。~a   ---a就是~运算符的操作数。---单目运算符:运算符只有一个操作数3+5---35就是+运算符的操作数。---双目运算符:运算符有2个操作数    表达式1?表达式2:表达......
  • 嵌入式特征选择
    嵌入式特征选择(EmbeddedFeatureSelection)是一种在模型训练过程中自动选择重要特征的方法。相比前向逐步选择或随机抽样等独立的特征选择步骤,嵌入式特征选择能直接在模型构建中融入特征选择逻辑。其中,**L1正则化(Lasso)**是一种典型的嵌入式特征选择方法。什么是L1正则化在L1......
  • jQuery选择器
    目录一、基本选择器1.标签选择器(元素选择器)2.ID选择器3.类选择器4.通配符选择器二、层次选择器1.后代选择器2.子选择器3.相邻兄弟选择器4.一般兄弟选择器三、属性选择器1.简单属性选择器2.属性值等于选择器3.属性值包含选择器4.属性值以特定字符串开......
  • Ant Design Vue 的 a-table 行选择分页时bug处理
    有bug的伪代码如下(示例以id来作为rowKey):<a-table:row-selection="{selectedRowKeys:selectedRowKeys,onChange:onSelectChange}":columns="columns"rowKey="id":pagination="pagination":data-source=&q......
  • python小白入手第一章基础知识
    单行注释:用#开头,#右边的部分即为所要注释的内容多行注释:用一对三个双引号引起来例子:print("Hi")#print("hello"),相应的第二个print语句不会执行钱包案例:目前学习的三种数据类型:string、int、floattype()语句的使用:在print语句中,直接输出类型信息,同时也可以将数据存储到变量中,......
  • Git基础知识
    1、什么是Git?Git是一种分布式版本控制系统,用于跟踪文件的变化,特别是在软件开发中。它允许多个开发者同时工作,提供历史记录、分支管理和协作功能。2、Git的常见工作流程:初始化Git仓库(gitinit)。添加文件到暂存区(gitadd)。提交更改(gitcommit-m"commitmessage")。创......
  • 选择使用通用视图(Generic Views)或视图集(ViewSets)
    在DjangoRESTFramework中,通用视图和视图集都可以用于快速构建RESTAPI。它们各自有不同的适用场景,下面将详细介绍如何在两者之间进行选择。通用视图(GenericViews)通用视图提供了一些常用的、独立的视图类,如ListCreateAPIView、RetrieveUpdateDestroyAPIView等,用于处理增删改......
  • windows 在词库中添加自定义短语,比如输入now可以选择当前日期加时间
    本文只记录添加在词库中添加自定义短语1、右击任务栏中的中英文切换的图标,选择“设置” 2、在”词库和自学习“中找到“用户定义短语”,点击添加或编辑自定义短语 3、点击“添加” 4、需要输入拼音、候选位置和短语拼音:now侯选位置:固定的选择序号短语:%yyyy%年%MM%月......
  • 企业邮箱选择指南 打造专业形象必备
    企业邮箱是企业通信工具,体现专业形象,提高协作效率。选择需考虑安全性、功能集成、性价比和技术支持。Zoho邮箱因简洁界面、丰富协作工具和出色安全性能受好评,提供多种套餐,适合各类企业。一、企业邮箱的定义与重要性1、定义:企业邮箱是指由公司注册并用于官方通信的电子邮件地址......