Java 回路内的开关状态工作不正常
Java新手,我的代码有问题,它是while循环中的switch语句。我喜欢用字母或“char”来代替数字大小写“int”,我必须退出“q”。谢谢你的意见。这是主代码Java 回路内的开关状态工作不正常,java,Java,Java新手,我的代码有问题,它是while循环中的switch语句。我喜欢用字母或“char”来代替数字大小写“int”,我必须退出“q”。谢谢你的意见。这是主代码 import java.util.Scanner; import java.util.*; public class supraCritters { public static void main(String [] arguments) { Critter nastybat = new Critter(
import java.util.Scanner;
import java.util.*;
public class supraCritters {
public static void main(String [] arguments) {
Critter nastybat = new Critter();
nastybat.health = 100;
nastybat.mood = 50;
nastybat.hunger = 25;
System.out.println("Your critter has just been born,");
System.out.println("here are the stats of your critter.");
nastybat.checkStats();
System.out.println("\nPlease choose a letter");
System.out.println("[c]heck stats \n[f]eed \n[p]lay \n[r]ead \n[t]rain");
System.out.println("[q]uit");
Scanner sChoice = new Scanner(System.in);
char choice = ' ';
while (choice != 'q') {
switch (choice) {
case 'c':
nastybat.checkStats();
break;
case 'f':
nastybat.feed();
break;
case 'p':
nastybat.play();
break;
case 'r':
nastybat.read();
break;
case 't':
nastybat.train();
break;
case 'q':
System.out.println("good bye");
break;
default:
System.out.println("invalid entry");
break;
}
choice = sChoice.next().charAt(0);
}
}
}
当我输入相应的字母时,循环不显示输入法或重复,而“q”什么也不做。默认情况下,输入前显示“无效条目”
代码已编辑,但仍有问题。输入只进行一次,第一次!因此,循环总是返回相同的结果。您应该在循环中复制获取输入代码
Scanner sChoice = new Scanner(System.in);
char choice = '';
while (choice != 'q') {
switch (choice) {
case 'c':
nastybat.checkStats();
break;
.
.
.
.
.
choice = sChoice.next().charAt(0);
第一行获取第一次开关运行的输入,循环内的一行获取其余的输入
更新:
choice=sChoice.next().charAt(0)代码>应该放在循环的最后,如果不是,正如@proskor所说,当用户点击“q
”时,程序将返回一个“无效条目”
”。我完成了代码,它似乎工作了。测试对象现在可以使用的方法
决赛
您应该将获取用户输入的代码移动到您提供的代码中,并说它不起作用-但不说它以什么方式不起作用,也不告诉我们问题的任何迹象。这将在终止之前在“q”上打印“无效条目”。
import java.util.Scanner;
import java.util.*;
public class supraCritters {
public static void main(String [] arguments) {
Critter nastybat = new Critter();
nastybat.health = 100;
nastybat.mood = 50;
nastybat.hunger = 25;
System.out.println("Your critter has just been born,");
System.out.println("here are the stats of your critter.");
nastybat.checkStats();
Scanner sChoice = new Scanner(System.in);
char choice = ' ';
while (choice != 'q') {
switch (choice) {
case 'c': case 'C':
nastybat.checkStats();
break;
case 'f': case 'F':
nastybat.feed();
break;
case 'p': case 'P':
nastybat.play();
break;
case 'r': case 'R':
nastybat.read();
break;
case 't': case 'T':
nastybat.train();
break;
case 'q': case 'Q':
System.out.println("good bye");
break;
default:
System.out.println("invalid entry");
break;
}
System.out.println("\nPlease choose a letter");
System.out.println("[c]heck stats \n[f]eed \n[p]lay \n[r]ead \n[t]rain");
System.out.println("[q]uit");
choice = sChoice.next().charAt(0);
}
}
}