选择语句是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…
好了,今天就讲到这里,喜欢的话欢迎点赞评论哦