写一个零钱通项目,如图:
自己尝试了一下:
package com.hspedu.smallchange;
import java.util.Scanner;
public class SmallChangeSys {
public static void main(String[] args) {
//1显示出来
//2然后让用户输入
//3输入之后判断输入的啥
//第一次大分析:需用do while循环,先让这个图像显示一次
//所以这个时候应该设定一个变量,接收用户的输入
//第二次大分析:用一个switch来根据用户的输入进行相应的显示
//第三次大分析:设置一个布尔变量,如果这个变量为false,就是点击了退出,就不再do while循环了
String key;
boolean x = true;
do {
Scanner sc = new Scanner(System.in);
System.out.println("======零钱通菜单========");
System.out.println("1 零钱通明细");
System.out.println("2 收益入账");
System.out.println("3 消费");
System.out.println("4 退出");
key = sc.next("请输入(1-4):");
switch (key) {
case "1":
System.out.println("1 零钱通明细");
break;
case "2":
System.out.println("2 收益入账");
break;
case "3":
System.out.println("3 消费");
break;
case "4":
System.out.println("4 退出");
x = false;
break;
}
} while (x);
}
}
结果报错。
重新尝试一下才发现
sc.next()方法里是不写参数的。
提示应该用一个打印就可以:
System.out.println("请输入(1-4):");
代码改为:
package com.hspedu.smallchange;
import java.util.Scanner;
public class SmallChangeSys {
public static void main(String[] args) {
//1显示出来
//2然后让用户输入
//3输入之后判断输入的啥
//第一次大分析:需用do while循环,先让这个图像显示一次
//所以这个时候应该设定一个变量,接收用户的输入
//第二次大分析:用一个switch来根据用户的输入进行相应的显示
//第三次大分析:设置一个布尔变量,如果这个变量为false,就是点击了退出,就不再do while循环了
String key;
boolean x = true;
do {
Scanner sc = new Scanner(System.in);
System.out.println("===========零钱通菜单===========");
System.out.println("\t\t\t1 零钱通明细");
System.out.println("\t\t\t2 收益入账");
System.out.println("\t\t\t3 消费");
System.out.println("\t\t\t4 退出");
System.out.println("请输入(1-4):");
key = sc.next();
switch (key) {
case "1":
System.out.println("\t\t\t1 零钱通明细");
break;
case "2":
System.out.println("\t\t\t2 收益入账");
break;
case "3":
System.out.println("\t\t\t3 消费");
break;
case "4":
System.out.println("\t\t\t4 退出");
x = false;
break;
default:
System.out.println("你的输入有误,请重新输入");
}
} while (x);
System.out.println("退出了零钱通项目");
}
}
就可以正常运行了。