2015-01-06 3 views
0

, поэтому я новый программист на Java, и это может быть просто концепция, которая прошла прямо над моей головой. но если я вызываю логический метод в программе, такой как keepDice2 ниже, как я могу проверить возвращаемое значение-true для false-в выражении if? Ниже моя попытка.Использование возвращаемого значения метода в инструкции If

Я пытаюсь сделать метод keepDice2, возвращать логическое значение false, если пользователь вводит строку, содержащую «N» или «n». Затем я хочу сделать if-state: если возвращаемое значение является логическим значением false, тогда вызовите метод rollDice2 (я не включил rollDice2, поскольку он кажется несущественным). Любое понимание этого должно быть высоко оценено!

public static boolean keepDice2() { 
      Scanner input = new Scanner(System.in); 
      System.out.println("Keep Dice Two?"); 
      String keepDice = input.nextLine(); 
      boolean answer; 
      if (keepDice.contains("n") || keepDice.contains("N")) { 
       answer = false; 
       //here, if the answer contains n or N, then it is a form of "No", so that dice will be re-rolled. 
      } 
      else { 
       answer = true; 
      } 
      return answer; 
     } 
public static void (String[] args) { 
    if (keepDice2() == false) { 
      rollDice2(); 
       } 
      } 
+1

Я думаю, что все, что вам не хватает, это имя метода. Должно ли это быть «главным»? –

+0

Обратите внимание, что вы создаете новый «Сканер» при каждом вызове метода. Это закончится плохо. – chrylis

ответ

4

keepDice2() возвращает булево, поэтому вам не нужно сравнивать его. Вы также забыли назвать метод, который является main

public static void main (String[] args) { 
    if (!keepDice2()) { 
     rollDice2(); 
    } 
    } 
0

Что вы написали правильно, но вы можете достичь того же результата с меньшим количеством кода. Все внутри одного, если операторные скобки являются булевым выражением. Поэтому, если вы хотите написать код, который будет работать в случае, если это выражение вернет true, вы просто напишите это выражение в скобке, и это все, если вы хотите, чтобы он запускался в случае, если он возвращает только то, что вы положили! перед ней. Eq:

if(keepDice2()) { 
     rollDice2(); 
     /////////////////////////////////////////// 
     // put here rest of code you want to run // 
     // if keepDice2() returns true   // 
     ///////////////////////////////////////////  
    } 
    /*if keepDice2 returns false. 
    * But since 
    * there are only two possible outcomes 
    * you can just use else statement instead 
    * if else if with boolean expression in 
    * brackets 
    */ 
    else if (!keepDice2()) { 

     /////////////////////////////////////////// 
     // put here the code you want to run  // 
     // if keepDice2() returns false   // 
     /////////////////////////////////////////// 
    } 
Смежные вопросы