- Fdsama 的博客
选择结构
- 2024-1-24 8:09:01 @
引入
在程序中
有时候需要根据条件
而执行不同的代码
这时候就要使用选择结构了
if语句
if(条件成立)
{
执行语句A;
执行语句……
}
其中条件一项要写判断语句
如a==10
a>=b
等
大括号是为了将执行语句放到一起
如果条件成立就会执行大括号内的语句
如果执行语句只有一行可省略大括号
例题
#include<bits/stdc++.h>
using namespace std;
int main(){
int a;
cin>>a;
if(a%2==0)
{
cout<<"yes"<<endl;
}
return 0;
}
其中a%2==0
表示a为偶数成立
cout<<"yes"<<endl
表示是偶数就输出
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a;
cin>>a;
if(a>1 && a<100) cout<<"yes";
return 0;
}
if else 语句
看这道题
我们发现if语句不够用了
所以引入if else语句
if(条件成立)
{
执行语句A;
执行语句……
}
else
{
//条件不成立
执行语句B;
}
例题
#include<bits/stdc++.h>
using namespace std;
int main()
{
double a;
cin>>a;
if(a>=25&&a<=30)
{
cout<<"ok!";
}
else
{
cout<<"no!";
}
return 0;
}
如果a>=25 && a<=30
不成立
那么就执行else中的语句:cout<<"no!";
#include<bits/stdc++.h>
using namespace std;
int main(){
double x;
cin>>x;
double y=0;
if(x<=20)
{
y=x*1.68;
}
else
{
y=x*1.98;
}
printf("%.2lf\n",y);
return 0;
}
if elseif else 语句
在处理一些问题时,可能情况会很多,这时候我们可以用if elseif else语句来解决
if(条件A)
{
执行语句A;
}
else if(条件B)
{
执行语句B;
}
else if(条件C)
{
执行语句C;
}
else
{
执行语句D;
}
此处会先判断条件A,如果成立就执行语句A
若条件A不成立,就会继续判断条件B,如果成立就执行语句B
同理,若条件AB皆不成立,就继续判断条件C,如果成立就执行语句C
如果条件ABC都不成立,就执行else中的语句D(什么保底)
一个完整的if语句,可以有0~很多很多个else if语句,最多一个也可以没有else语句,但是必须有if语句
例题
#include <bits/stdc++.h>
using namespace std;
int main()
{
double a,b;
cin>>a;
if(a<0)
{
printf("negative");
}
else if(a>0)
{
printf("positive");
}
else
{
printf("zero");
}
return 0;
}
这里也可以使用if嵌套的方式实现
#include <bits/stdc++.h>
using namespace std;
int main() {
double a;
cin >> a;
if (a < 0)
{
printf("negative");
}
else
{
if (a > 0)
{
printf("positive");
}
else
{
printf("zero");
}
}
return 0;
}
如果条件a<0
未成立就会进入else语句
继续判断条件if(a>0)
,与if elseif else语句等效
#include<bits/stdc++.h>
using namespace std;
int main(){
int x,y;
cin>>x>>y;
if(x>y)
{
cout<<'>'<<endl;
}
else if(x==y)
{
cout<<'='<<endl;
}
else
{
cout<<'<'<<endl;
}
return 0;
}
#include<bits/stdc++.h>
using namespace std;
int main(){
int a;
cin>>a;
if(a==1)
{
printf("Monday");
}
else if(a==2)
{
printf("Tuesday");
}
else if(a==3)
{
printf("Wednesday");
}
else if(a==4)
{
printf("Thursday");
}
else if(a==5)
{
printf("Friday");
}
else if(a==6)
{
printf("Saturday");
}
else if(a==7)
{
printf("Sunday");
}
else
{
printf("input error!");
}
return 0;
}
switch语句
对于上面的这道题
用if elseif else来写有些过于繁琐了
所以可以使用switch语句简化
switch(变量a)
{
case 1:
语句A;
break;
case 2:
语句B;
break;
case 3:
语句C;
break;
default:
语句D;
break;
}
这段代码等价于
if(a==1)
{
语句A;
}
else if(a==2)
{
语句B;
}
else if(a==3)
{
语句C;
}
else
{
语句D;
}
break;
语句表示如果条件成立并且执行完就跳出switch
break如果不写的话会判断不可能成立的条件!
default
语句等价于else
case语句中不需要写大括号!
例题
#include<bits/stdc++.h>
using namespace std;
int main()
{
int x;
cin>>x;
switch(x)
{
case 1:
cout<<"Monday";
break;
case 2:
cout<<"Tuesday";
break;
case 3:
cout<<"Wednesday";
break;
case 4:
cout<<"Thursday";
break;
case 5:
cout<<"Friday";
break;
case 6:
cout<<"Saturday";
break;
case 7:
cout<<"Sunday";
break;
default:
cout<<"input error!";
}
}
#include<bits/stdc++.h>
using namespace std;
int main()
{
double a,b;
char c;
cin>>a>>b>>c;
switch(c)
{
case '+':
cout<<a+b;
break;
case '-':
cout<<a-b;
break;
case '*':
cout<<a*b;
break;
case '/':
if(b==0)
{
cout<<"Divided by zero!";
break;
}
cout<<a/b;
break;
default:
cout<<"Invalid operator!";
break;
}
}