第二次作业+105032014108
1.测试帖链接
http://www.cnblogs.com/1033YCY/p/6596443.html
2.问题与缺陷
程序在输入非整形数值后程序崩溃
3.代码清单
package exp_1;
import java.util.Scanner;
public class Test {
public static final int HP_PRICE=80; //手机耳机价格
public static final int SHELL_PRICE=10; //手机保护壳价格
public static final int PROTECTOR_PRICE=8; //手机保护膜价格
public static final String MSG_INPUT_ERROR="-1"; //错误信息
public static void main(String[] args){
Scanner scanner=new Scanner(System.in);
while(true)
{
System.out.print("请输入耳机销售量:");
String hp=scanner.nextLine();
System.out.print("请输入手机壳销售量:");
String shell=scanner.nextLine();
System.out.print("请输入手机贴膜销售量:");
String protector= scanner.nextLine();
String result=commission(hp, shell, protector);
System.out.println(result);
}
}
//求销售额
public static String commission(String hp,String shell,String protector){
int hp_int;
int shell_int;
int protector_int;
//判断输入是否为整形数值
try
{
hp_int=Integer.parseInt(hp);
shell_int=Integer.parseInt(shell);
protector_int=Integer.parseInt(protector);
} catch (Exception e)
{
return MSG_INPUT_ERROR;
}
//判断输入是否合理
if(hp_int<0||shell_int<0||protector_int<0)
{
return MSG_INPUT_ERROR;
}else
{
double result=hp_int*HP_PRICE+shell_int*SHELL_PRICE+protector_int*PROTECTOR_PRICE;
if(result<1000)
{
return String.valueOf(result*0.1); //小于1000
}
else if(result>=1000&&result<=1800)
{
return String.valueOf(1000*0.1+(result-1000)*0.15); //大于1000且小于1800
}
else
{
return String.valueOf(1000*0.1+800*0.15+(result-1800)*0.2); //大于1800
}
}
}
}
4.心得体会
通过try catch结构可以通过自定义异常发生后的处理行为,从而提高程序的容错性,使代码更加健壮。

浙公网安备 33010602011771号