分支语句:
if else
第一种:
if(表达式1)
{
语句块1
}
第二种:
if(表达式1)
{
语句块1
}
else
{
语句块2
}
第三种:
if(表达式1)
{
语句块2
}
。。。
else if(表达式n)
{
语句块n
}
else
{
语句块n+1
}
switch
switch:通过表达式的值,跳转到不同的标签(case)上
switch一般表达形式:
switch(表达式)
{
case 常量1:语句1;break;
case 常量2:语句2;break;
... ... ...
case 常量n:语句n;break;
default : 语句n+1; break;
}
注意点:
1.switch很少使用 最好用if else
2.表达式要求必须是整型 bool,char,short,int,long,long long,枚举 不允许浮点值(单精度和双精度都不允许),字符串
3.switch 什么时候进入,什么时候出?
3.1: 什么时候入:进入的时候,会和所有标签对比一下,如果找到相同的,就进入,如果没有找到相同标签,从缺省default进入,如果default没写,则进入不了
3.2: 什么时候出:第一种:遇到break正常退出,一种switch正常结束
练习:
int main() //if
{
double x;
double bonus;//奖金
scanf_s("%lf", &x);
if(x<=100000)
{
bonus = x * 0.1;
}
else if(x<=200000)
{
bonus = 100000*0.1 + (x-100000)*0.075;
}
else if(x<=400000)
{
bonus = 10000 + 7500 + (x-200000) * 0.05;
}
else if(x <= 600000)
{
bonus = 10000 + 7500 + 10000 + (x-400000)*0.03;
}
else if(x <= 1000000)
{
bonus = 10000+7500+10000+6000+(x - 600000)*0.015;
}
else
{
bonus = 10000+7500+10000+6000+6000+(x-1000000)*0.01;
}
printf("奖金为:%f\n", bonus);
return 0;
}
int main()//switch
{
double x;
double bonus;
scanf_s("%lf", &x);
switch ((int)(x/100000))
{
case 0: bonus = x*0.1; break;
case 1: bonus = 10000 + (x-100000)*0.075; break;
case 2:
case 3: bonus = 10000 + 7500 + (x-200000)*0.05; break;
case 4:
case 5: bonus = 10000 + 7500 + 10000 + (x-400000)*0.03; break;
case 6:
case 7:
case 8:
case 9: bonus = 10000 + 7500 + 10000 + 6000 +(x-600000)*0.015; break;
default:
bonus = 10000+7500+10000+6000+6000+(x-1000000)*0.01;break;
}