如果用户猜错了系统打印错误。我希望每当用户出错时游戏结束,任何人都可以帮助我吗?我尝试使用系统退出,但是当猜测也正确时,它就会退出。我希望系统打印" Game Over"如果用户错了,那么下一张卡就会出现。
static Scanner console = new Scanner(System.in);
public static void main(String[] args) {
int[] cards = {6,4,2,7,5,9,11,1,12};
System.out.println("predict next number by typing in 'higher' or 'lower'");
for (int i = 1; i < cards.length; i++)
{
printHead(cards, i);
System.out.println("");;
String predict = console.next();
if (predict.equals("higher"))
checkHigher(cards, i-1, i);
if (predict.equals("lower"))
checkLower(cards, i-1, i);
}
printAll(cards);
}
public static void printAll(int[] cards){
for (int i =0; i< cards.length; i++)
System.out.print(cards[i]+ " ");
}
public static void printHead(int[] cards, int upTo){
for (int i =0; i< upTo; i++)
System.out.print(cards[i]+ " ");
}
public static void checkHigher (int[] cards, int pos1, int pos2){
if (cards[pos2]>cards[pos1])
System.out.println ("Correct!");
else
System.out.println("Wrong");
}
public static void checkLower (int[] cards, int pos1, int pos2){
if (cards[pos2]<cards[pos1])
System.out.println ("Correct!");
else
System.out.println("Wrong");
}
}
答案 0 :(得分:1)
更简单的方法是使用
退出程序System.exit(0);
另一种方法是从每张支票中返回boolean
值并使用它来决定是否退出。
第三种方法是在用户错误时将main
方法代码包装在try catch
和Exception
中,然后退出。
使用代码段跟随三个备选方案:
直接退出支票
public static void checkLower (int[] cards, int pos1, int pos2){
if (cards[pos2]<cards[pos1]) {
System.out.println ("Correct!");
} else {
System.out.println("Wrong");
System.exit(0);
}
}
使用布尔返回值
public boolean void checkLower (int[] cards, int pos1, int pos2){
if (cards[pos2]<cards[pos1]) {
System.out.println ("Correct!");
return true;
} else {
System.out.println("Wrong");
return false;
}
}
并在主
if (!checkLower(cards, i-1, i)) {
System.exit(0);
}
抛出异常
public boolean void checkLower (int[] cards, int pos1, int pos2) throws Exception {
if (cards[pos2]<cards[pos1]) {
System.out.println ("Correct!");
} else {
System.out.println("Wrong");
throw new Exception("Wrong answer");
}
}
并在主
public static void main(String[] args) {
try {
// Your code here
} catch (Exception e) {
System.out.println("There was an exception in the input");
}
}
答案 1 :(得分:0)
只需在每个错误答案后输入:
System.exit(0);
我尝试使用系统退出,但是在猜测时就退出了 也是正确的。
那可能是因为你使用了else语句而不是其他代码块。忘了大括号?