【训练4】超市限购
超市经常会对定价较市场价低的产品实施限购,超市里的鲜鸡蛋每500克3.98元,每人限购1500克。现将超过1500克的作为异常抛出,而对于满足条件的,计算应付款。
- 方法一
/*【训练4】超市限购
* 超市经常会对定价较市场价低的产品实施限购,超市里的鲜鸡蛋每500克3.98元,
* 每人限购1500克。现将超过1500克的作为异常抛出,而对于满足条件的,计算应付款。
* */
package yccl;
import java.util.Scanner;
public class Xl4 {
public static void Price(int weight) throws Exception {
if(weight <= 1500 && weight > 0) {
double sum = (float)(weight/500)*3.98;
System.out.println("购买"+weight+"克鲜鸡蛋,应付款"+sum+"元。");
}else if(weight > 1500) {
throw new Exception("每人限购1500克!");
}
}
public static void main(String[] args) {
// TODO 自动生成的方法存根
System.out.println("请输入购买鸡蛋的重量(单位克):");
Scanner sc = new Scanner(System.in);
int weight = sc.nextInt();
try {
Price(weight);
}catch(Exception e){
System.out.println(e);
}finally {
sc.close();
}
}
}
- 方法二
package yccl;
import java.util.Scanner;
class OverloadException extends Exception{ // 自定义异常类OverloadException,继承Exception类
public OverloadException(double weight) {
System.out.println("异常提示:这份鸡蛋的重量为" + weight + "斤,超过3斤了,超重了!!!");
}
}
public class Xl42 {
public static void pay(double weight) throws OverloadException{
if(weight > 3) {
throw new OverloadException(weight);
}
float money = (float)(weight*3.98);
System.out.println("应付款:"+money+"元");
}
public static void main(String[] args) {
// TODO 自动生成的方法存根
System.out.println("请输入鲜鸡蛋的重量(斤):");
Scanner sc = new Scanner(System.in);
double weight = sc.nextDouble();
try {
pay(weight);
}catch(OverloadException ole) {
//方法体为空,是因为自定义异常类 OverloadException类中,
//我们通过构造的有参方法 public OverloadException(double weight),
//已将出现异常时的信息,在控制台上输出了;
//所以,此处就不必再写“System.out.println(ole)”这条控制语句
}finally {
sc.close();
}
}
}