C++中选择语句的应用

选择语句是C语言中基础却又必不可少的方法,今天主要为大家带来选择语句的用法,当然还有部分拓展
大家学习之前给我点一个赞吧~~

1. if 语句

这是选择语句中最基础的版块之一,掌握了它可以解决所有的选择问题
缺点:变通性差,代码繁琐
首先最基础的,就是通过if语句挨个判断
格式为:if(条件判别式) 语句;

#include<bits/stdc++.h>
using namespace std;
    int main(){
        int n;
        cin>>n;
        if(n<=10) cout<<"good morning";
        
        if(n>10&&n<=100) cout<<"hello";
        
        if(n>=100) cout<<"have a good day";
        return 0;
    }   

if后的括号里装的是你要判断的语句,当然,里面也可以装函数
注意:
1. if(n) 的含义是如果n不等于0就执行
2. 相反的,if(!n)代表如果n等于0就执行

#include<bits/stdc++.h>
using namespace std;
    int main(){
        int n;
        cin>>n;
        if(n<=10) cout<<"good morning";
        
        if(n>10&&n<=100) cout<<"hello";
        
        if(n>=100) cout<<"have a good day";
        return 0;
    }   

这里你就会说:哎呀,我学个if就够咯,凑就完事了!
nonono,这样无论是干什么都太慢了

2. else 语句

else语句是if的拓展,你这么想也可以
当然,必须要有if才能有else;并且使用else时,要注意大括号的包裹
else永远是与当前大括号内的前一个if搭配
格式为:else 语句
什么意思呢,我们来实践看一下,举一个不太好的例子:

#include<bits/stdc++.h>
using namespace std;
	int main(){
		int n;
		cin>>n;
		if(n<=10000){
			cout<<"你好";
			if(n<=5000) cout<<"我特别好"; 
			else cout<<"我不太好";
		}
		
		return 0;
	}

这里的else在一个if的大括号内,它不会去跟if(n<=10000)搭配,它搭配的是前一个if(n<=5000)
再举个例子:

#include<bits/stdc++.h>
using namespace std;
	int main(){
		int n;
		cin>>n;
		if(n<=10000){
			cout<<"你好";
			if(n<=5000) cout<<"我特别好"; 
		}
		else cout<<"我不太好";
		return 0;
	}

这里的else没有在if的大括号内,在函数main()的大括号内,所以搭配的就是前一个if(n<=10000)

3. else if 语句

这个语句是else的拓展,意思是否则如果
缺点:应用方面不算广泛,但可以用
格式为:else if(条件判别式) 语句

#include<bits/stdc++.h>
using namespace std;
	int main(){
		int n;
		cin>>n;
		if(n<=10000){
			cout<<"你好";
			if(n<=5000) cout<<"我特别好";
			else if(n>5000&&n<=7000) cout<<"我还行";
			else if(n>7000) cout<<"你怎么样"; 
		}
		else cout<<"我不太好";
		return 0;
	}

作者本人感觉没啥用,具体的就看你们用不用了

4. switch 语句

这个语句相比起if可就要方便多了,而且你只要输入case(变量值):{} 就会为你自动补全break
缺点:运行速度较慢
具体的用法呢是这样的:

switch(变量名或运算式){
			case 变量值1:{
				语句1; 
				break;	//这个会自动跳出来 
			}
			case 变量值2:{
				语句2; 
				break;
			}
			......
		} 

我们来举一个实际的例子:

#include<windows.h>
#include<bits/stdc++.h>
using namespace std;
	int main(){
		int a;
		cin>>a; 
		
		if(a==1) 
		MessageBox(NULL,"你是人吗?","选择题",MB_YESNO);
		
		if(a==2)
		MessageBox(NULL,"恭喜你,你是大聪明!","提示",MB_OK);
		
		if(a==3)
		MessageBox(NULL,"你是失败的man吗?","选择题",MB_YESNO);
		
		if(a==4)
		MessageBox(NULL,"家里是不是养了宠物猪?","选择题",MB_YESNO);
		
		if(a==5)
		MessageBox(NULL,"盲人朵拉为你送上祝福!","提示",MB_OK);
		
		if(a==6)
		MessageBox(NULL,"你是ikun吗?","选择题",MB_YESNO);
		
		if(a==7)
		MessageBox(NULL,"哇,作者也喜欢7耶~","提示",MB_OK);
		
		if(a==8)
		MessageBox(NULL,"你家里是不是很有钱?","选择题",MB_YESNO);  
		
		if(a==9)
		MessageBox(NULL,"最大的数字!祝福最厉害的你。","提示",MB_OK);
		
		if(a<=0||a>9) MessageBox(NULL,"数字出错!!!","提示",MB_OK); 
		
		return 0;	
	}

这是全部用if堆起来的,那用了switch之后呢?

#include<windows.h>
#include<bits/stdc++.h>
using namespace std;
	int main(){
		int a;
		cin>>a; 
		switch(a){
			case 1:{
				MessageBox(NULL,"你是人吗?","选择题",MB_YESNO);
				break;
			}
			case 2:{
				MessageBox(NULL,"恭喜你,你是大聪明!","提示",MB_OK);
				break;
			}
			case 3:{
				MessageBox(NULL,"你是失败的man吗?","选择题",MB_YESNO);
				break;
			}
			case 4:{
				MessageBox(NULL,"家里是不是养了宠物猪?","选择题",MB_YESNO);
				break;
			}
			case 5:{
				MessageBox(NULL,"盲人朵拉为你送上祝福!","提示",MB_OK);
				break;
			}
			case 6:{
				MessageBox(NULL,"你是ikun吗?","选择题",MB_YESNO);
				break;
			}
			case 7:{
				MessageBox(NULL,"哇,作者也喜欢7耶~","提示",MB_OK);
				break;
			}
			case 8:{
				MessageBox(NULL,"你家里是不是很有钱?","选择题",MB_YESNO);  
				break;
			}
			case 9:{
				MessageBox(NULL,"最大的数字!祝福最厉害的你。","提示",MB_OK);
				break;
			}
		}
		if(a<=0||a>9) MessageBox(NULL,"数字出错!!!","提示",MB_OK); 
		
		return 0;	
	}

虽然看上去没有什么区别,但是实际上速度快了许多,也更一目了然
在if语句内包裹东西多的时候这个很好,但是如果if的数量少,最好不要用,因为它很慢
但是现在,我们又遇到了一个问题,如果a<=0或是a>9,还要写一个if来判断,好麻烦

5. default

这个东西其实功能挺强大的,你想想,else否定一个if,这玩意否定所有case
它的意思就是:如果没有case满足,就执行
还是看看刚刚的那个代码,现在加了default:

#include<windows.h>
#include<bits/stdc++.h>
using namespace std;
	int main(){
		int a;
		cin>>a; 
		switch(a){
			case 1:{
				MessageBox(NULL,"你是人吗?","选择题",MB_YESNO);
				break;
			}
			case 2:{
				MessageBox(NULL,"恭喜你,你是大聪明!","提示",MB_OK);
				break;
			}
			case 3:{
				MessageBox(NULL,"你是失败的man吗?","选择题",MB_YESNO);
				break;
			}
			case 4:{
				MessageBox(NULL,"家里是不是养了宠物猪?","选择题",MB_YESNO);
				break;
			}
			case 5:{
				MessageBox(NULL,"盲人朵拉为你送上祝福!","提示",MB_OK);
				break;
			}
			case 6:{
				MessageBox(NULL,"你是ikun吗?","选择题",MB_YESNO);
				break;
			}
			case 7:{
				MessageBox(NULL,"哇,作者也喜欢7耶~","提示",MB_OK);
				break;
			}
			case 8:{
				MessageBox(NULL,"你家里是不是很有钱?","选择题",MB_YESNO);  
				break;
			}
			case 9:{
				MessageBox(NULL,"最大的数字!祝福最厉害的你。","提示",MB_OK);
				break;
			}
			default:{
				MessageBox(NULL,"数字出错!!!","提示",MB_OK); 
				break;
			}
		}
		return 0;	
	}

变得更整洁了,你想想,如果case的值不整齐,你挨个挨个if…
在这里插入图片描述

好了,今天就讲到这里,喜欢的话欢迎点赞评论哦

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值