import java.util.Scanner; public class HomeWork01 { /* 编写收银台小程序,输入单价、个数、金额,输出找零。 */ public static void main(String[] args) { Scanner s = new Scanner(System.in); System.out.println("请输入不为0的整数:"); int x = s.nextInt(); // 声明一个整型int变量,个数 System.out.println("请输入单价:"); float y = s.nextFloat(); // 声明一个浮点型float变量,单价 System.out.println("请输入金额:"); float z = s.nextFloat(); // 声明一个浮点型float变量,金额 float r; r = z - x * y; // 找零 = 金额 - 个数 * 单价 if(z < x * y){ System.out.println("金额不足,请重新输入金额"); }else{ System.out.println(r); } z = s.nextFloat(); System.out.println(r); } } 请找到问题,并优化代码
时间: 2024-02-14 19:13:41 浏览: 52
问题:
1. 在输出找零前,应该先判断找零是否小于0,如果小于0,说明金额不足,应该提示用户重新输入金额。
2. 在代码末尾多余的一行 `z = s.nextFloat();` 和 `System.out.println(r);` 应该删除。
优化后的代码如下:
```java
import java.util.Scanner;
public class HomeWork01 {
/*
编写收银台小程序,输入单价、个数、金额,输出找零。
*/
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.println("请输入不为0的整数:");
int x = s.nextInt(); // 声明一个整型int变量,个数
System.out.println("请输入单价:");
float y = s.nextFloat(); // 声明一个浮点型float变量,单价
System.out.println("请输入金额:");
float z = s.nextFloat(); // 声明一个浮点型float变量,金额
float r;
r = z - x * y; // 找零 = 金额 - 个数 * 单价
if(r < 0){
System.out.println("金额不足,请重新输入金额");
}else{
System.out.println("找零:" + r);
}
}
}
```
阅读全文