package 第八章; import java.util.Scanner; public class MenuPrise { public static void main(String[] args) { // TODO 自动生成的方法存根 String menu = "北京烤鸭:189 元 西芹炒肉:12.9 元 酸菜鱼:69 元 铁板牛柳:32 元"; Scanner scanner = new Scanner(menu); double total = 0.0; while (scanner.hasNext()) { String item = scanner.next(); if (scanner.hasNextDouble()){ double price = scanner.nextDouble(); System.out.println(item + ": " + price + " 元"); total += price; } } System.out.println("菜单总价格为: " + total + " 元"); } }修复当前代码
时间: 2024-01-16 13:05:01 浏览: 70
该代码没有明显的错误,但是在输出菜单总价格时,应该将其放在while循环外面,避免重复输出。修复后的代码如下:
```java
package 第八章;
import java.util.Scanner;
public class MenuPrice {
public static void main(String[] args) {
String menu = "北京烤鸭:189 元 西芹炒肉:12.9 元 酸菜鱼:69 元 铁板牛柳:32 元";
Scanner scanner = new Scanner(menu);
double total = 0.0;
while (scanner.hasNext()) {
String item = scanner.next();
if (scanner.hasNextDouble()) {
double price = scanner.nextDouble();
System.out.println(item + ": " + price + " 元");
total += price;
}
}
System.out.println("菜单总价格为: " + total + " 元");
}
}
```
相关问题
解释package shiyan2; import java.util. Scanner; public class student { public static void main(String[] args) { // TODO Auto-generated method stub 11从界面接收输入的信息 Scanner sc = new Scanner(@ System.in); Stu a = new Stu(sc.next,sc.next,sc.nextFloat a.show; a.calGpa); sc.close0!
这段代码是一个Java程序,它定义了一个名为`student`的类,其中包括一个名为`main`的方法。这个方法的作用是从用户输入中获取学生的信息(姓名、学号、成绩等),计算学生的GPA并输出。具体来说,这个程序使用了Java标准库中的Scanner类来获取用户输入,然后通过调用Stu类的show和calGpa方法来输出学生信息和计算GPA。在程序结尾处,使用了`sc.close()`来关闭Scanner对象,以释放资源。需要注意的是,这段代码有一些语法错误,例如缺少了括号、分号等。如果要让它能够编译通过,需要进行一些修正。
package hj; import java.util.Scanner; import.java.util.Scanner; public class Example3_2 { public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("请输入数学成绩"); Scanner reader = new Scanner(System.in); if(math>60) { System.out.println("数学及格了"); } else { System.out.println("数学不及格"); } } System.out.println("我在学习if-else语句"); }
这段代码有语法错误,第6行缺少一个空格,应该为"import java.util.Scanner;"。同时,第10行的变量math没有定义,应该先定义再使用。最后,第14行的花括号位置不正确,应该放在if语句的后面。正确的代码应该是这样的:
```
package hj;
import java.util.Scanner;
public class Example3_2 {
public static void main(String[] args) {
System.out.println("请输入数学成绩");
Scanner reader = new Scanner(System.in);
int math = reader.nextInt();
if(math > 60) {
System.out.println("数学及格了");
}
else {
System.out.println("数学不及格");
}
System.out.println("我在学习if-else语句");
}
}
```
阅读全文