2016-01-27 4 views
-2

Если пользователь ошибается, система печатает неправильно. Я хочу, чтобы игра заканчивалась всякий раз, когда пользователь ошибается, может ли кто-нибудь мне помочь? Я попытался использовать системный выход, но это было выходным, когда предположение было правильным. Я хочу, чтобы система печатала «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

'System.exit (0);' –

+1

" Я попытался использовать системный выход, но это было e если угадать было правильно ». Возможно, вы забыли добавить '{' и '}' вокруг двух своих утверждений? – exception1

+1

'Я хочу, чтобы система печатала« Game Over », если пользователь ошибается и ...' - поэтому вы хотите выйти из системы или распечатать что-нибудь? –

ответ

0

Просто введите это после каждого неправильного ответа:

System.exit(0); 

Я попытался с помощью выхода системы, но это был выход, когда догадка исправить, а также.

Это, вероятно, потому, что вы использовали оператор else istead else code block. Забыли о брекетах?

1

Чем проще способ, чтобы выйти из программы с

System.exit(0); 

альтернатива возвращать значение boolean из каждой проверки и использовать его, чтобы решить, если выход или нет.

Третий вариант заключается в том, чтобы обернуть код метода main в try catch и через Exception, когда пользователь ошибается, затем выйдите.

Выполните три варианта с фрагментом кодов:


Exiting непосредственно из чека

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"); 
    } 
} 
Смежные вопросы