哪位高手帮我看看这个java程序

来源:百度知道 编辑:UC知道 时间:2024/05/15 20:10:46
public class Award
{
public static void main(String args[])
{
float i,award_sum;
switch((int)(i/10))
{case 0: award_sum=0.1*i;break;
case 1: award_sum=0.1*10+0.075*(i-10);break;
case 2,3: award_sum=0.1*10+0.075*10+0.05*(i-20);break;
case 4,5: award_sum=0.1*10+0.075*10+0.05*20+0.03*(i-40);break;
case 6,7,8,9: award_sum=0.1*10+0.075*10+0.05*20+0.03*20+0.015*(i-60);break;
default : award_sum=0.1*10+0.075*10+0.05*20+0.03*20+0.015*40+0.01*(i-100);
}
System.out.println("奖金总数为: "+award_sum+"万元");
}
}

这个程序是用于计算企业按利润提成的奖金总数,单位为万元。调试时出现错误,是不是因为我写的switch语句有问题,高手帮忙指点一下。
强制转化应该没有问题,编译时没有提示那里出错了。i没有赋值是一个错误,但是更正后还是有编译错误啊。

i没有被赋初值

这样就没事了:
public static void main(String args[])
{
double i=3.0,award_sum;
switch((int)(i/10))
{
case 0: award_sum=0.1*i;break;
case 1: award_sum=0.1*10+0.075*(i-10);break;
case 2:
case 3:award_sum=0.1*10+0.075*10+0.05*(i-20);break;
case 4:
case 5:award_sum=0.1*10+0.075*10+0.05*20+0.03*(i-40);break;
case 6:
case 7:
case 8:
case 9:award_sum=0.1*10+0.075*10+0.05*20+0.03*20+0.015*(i-60);break;
default : award_sum=0.1*10+0.075*10+0.05*20+0.03*20+0.015*40+0.01*(i-100);
}
System.out.println("奖金总数为: "+award_sum+"万元");
}

强制转化整形的时候出错吧