日期:2014-05-20  浏览次数:20769 次

遇到了 人生中郁闷的事 大虾帮我指路!
请问这个题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高
   于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提
   成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于
   40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于
   100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?
  
我现在正在苦闷,到底是用if 语句做 ,还是用SWitch 语句做。 如果用SWitch 语句的话,我会觉得 很苦难。请高手为我指点下,用Switch 如果高手的话 可以给下代码 感谢了。

------解决方案--------------------
b=10*0.1*10*0.075+20*0.05+(a-60)*0.015;
b=10*0.1*10*0.075%+20*0.05+60*0.015+(a-100)*0.01;

这两句好像错了。
b=10*0.1*10*0.075+20*0.05+20*0.03+(a-60)*0.015;
b=10*0.1*10*0.075%+20*0.05+20*0.03+40*0.015+(a-100)*0.01;


------解决方案--------------------
按照楼主的方法 
应该是这样的:
[code=Java]import java.util.*;
public class Test
{
public static void main(String[] args)
//利润
{
double b=0;
//定义一个扫描仪
Scanner input=new Scanner(System.in);
System.out.println("请输入当月利润 " + " "+ " 万元");
//传入一个参数
float a=input.nextFloat();
if(a<=10)
{
b=a*0.1;
System.out.println("当月的提成为:"+ b);
}else if(a>10&&a<=20)
{
b=10*0.1+(a-10)*0.075;
System.out.println("当月的提成为:"+ b);
}else if (a>20&&a<=40)
{
b=10*0.1+10*0.075+(a-20)*0.05;
System.out.println("当月的提成为:"+ b);

}else if (a>40&&a<=60)
{
b=10*0.1+10*0.075+20*0.05+(a-40)*0.03;
System.out.println("当月的提成为:"+ b);
}else if (a>60&&a<=100)
{
b=10*0.1+10*0.075+20*0.05+20*0.03+(a-60)*0.015;
System.out.println("当月的提成为:"+ b);

}else if (a>100)
{
b=10*0.1+10*0.075+20*0.05+20*0.03+40*0.015+(a-100)*0.01;
System.out.println("当月的提成为:"+ b);


}


}
 

}code]
错误1:判断语句中少了几个等于号
错误2:计算利润的几个表达式有些问题
(20-40的)b=10*0.1*+10*0.075+(a-20)*0.05; 多了个符号 后面的一样+的变成*的了
还有个%号 计算的表达式最后2个有点问题