2016-09-22 3 views
-5

Я предполагаю, что вы делаете простой код ножницы для бумажной бумаги, но большинство моих принтеров не работают. Я попробовал добавить еще один, чтобы узнать, было ли это просто мое назначение переменной для выбора и rand, но оно ничего не выводит. Любая помощь высоко ценится!Ошибка System.out.Println

import java.util.Scanner; 

public class project4 { 

    public static void main(String[] args) { 
    Random in = new Random(); 
    Scanner key = new Scanner(System.in); 
    System.out.println("Please select one of [R/P/S]: "); 
    String choice = key.nextLine(); 
    int rand = in.nextInt(3) + 1; 
    int choose = 0; 
    if (choice.equals("r") || choice.equals("R")) { 
     choose = 1; 
     System.out.println("You chose Rock"); 
    } else { 
     if (choice.equals("P") || choice.equals("p")) { 
     choose = 2; 
     System.out.println("You chose Paper"); 
     } else { 
     if (choice.equals("s") || choice.equals("S")) { 
      choose = 3; 
      System.out.println("You chose Scissors"); 
     } 
     } 
     System.out.println("rand= " + rand + "choose =" + choose); 
     System.out.flush(); 
    } 
    if (rand == 1) { 
     System.out.println("I chose Rock"); 
    } else { 
     if (rand == 2) { 
     System.out.println("I chose Paper"); 
     } else { 
     System.out.println("I chose Scissors"); 
     } 

     if (choose == rand) { 
     System.out.println("Its a Tie!"); 
     } else { 
     if (choose == 1 && rand == 2) { 
      System.out.println("Paper beats Rock, You lose!"); 
     } else { 
      if (choose == 1 && rand == 3) { 
      System.out.println("Rock beats Scissors, You win!"); 
      } else { 
      if (choose == 2 && rand == 1) { 
       System.out.println("Paper beats Rock, You win!"); 
      } else { 
       if (choose == 2 && rand == 3) { 
       System.out.println("Scissors beats Paper, You lose!"); 
       } else { 
       if (choose == 3 && rand == 1) { 
        System.out.println("Rock beats Scissors, You lose!"); 
       } else { 
        System.out.println("Scissors beats Paper, You win!"); 
       } 
       } 
      } 
      } 
     } 
     } 
    } 
    } 
} 
+2

первый шаг должен ВСЕГДА, Я не начать сомневаться в Java-код не побежит. Скорее всего, он не пропустит код, а скорее сомневается в вашей собственной логике. И что не печатает? для меня это работает – SomeJavaGuy

+0

после того, как он говорит, какой из них вы выберете, и прежде чем он скажет, что он выбрал, он должен выводить, какие переменные rand и выбирать имеют значения. то любая из строк, где говорится, что вы побеждаете или теряете, или его галстук! не выводятся для меня в eclipse. –

+0

Есть * путь * слишком много '{} здесь, чтобы вы не отформатировали это чисто; исправить это пожалуйста (-1). – ChiefTwoPencils

ответ

0

Ваш System.out.println пропускается, потому что вы поместили некоторые из них в условия «else». Из-за этого, когда условие «IF» истинно, блок else пропускается, а также sysout. Код ниже должен работать!

Кроме того, я бы предложил использовать else-if вместо условий вложенного-if, поскольку это сделать более читаемым и менее подверженным ошибкам.

package project4; 
import java.util.Random; 
import java.util.Scanner; 
public class project4 { 

public static void main(String[] args) { 
    Random in = new Random(); 
    Scanner key = new Scanner(System.in); 
    System.out.println("Please select one of [R/P/S]: "); 
    String choice = key.nextLine(); 
    int rand = in.nextInt(3) + 1; 
    int choose = 0; 
    if (choice.equals("r") || choice.equals("R")) { 
     choose = 1; 
     System.out.println("You chose Rock"); 
    } else { 
     if (choice.equals("P") || choice.equals("p")) { 
      choose = 2; 
      System.out.println("You chose Paper"); 
     } else { 
      if (choice.equals("s") || choice.equals("S")) { 
       choose = 3; 
       System.out.println("You chose Scissors"); 
      } 
     } 
    } 
    System.out.println("rand= " + rand + "choose =" + choose); 
    System.out.flush(); 
    if (rand == 1) { 
     System.out.println("I chose Rock"); 
    } else { 
     if (rand == 2) { 
      System.out.println("I chose Paper"); 
     } else { 
      System.out.println("I chose Scissors"); 
     } 
    } 

    if (choose == rand) { 
     System.out.println("Its a Tie!"); 
    } else { 
     if (choose == 1 && rand == 2) { 
      System.out.println("Paper beats Rock, You lose!"); 
     } else { 
      if (choose == 1 && rand == 3) { 
       System.out.println("Rock beats Scissors, You win!"); 
      } else { 
       if (choose == 2 && rand == 1) { 
        System.out.println("Paper beats Rock, You win!"); 
       } else { 
        if (choose == 2 && rand == 3) { 
         System.out.println("Scissors beats Paper, You lose!"); 
        } else { 
         if (choose == 3 && rand == 1) { 
          System.out.println("Rock beats Scissors, You lose!"); 
         } else { 
          System.out.println("Scissors beats Paper, You win!"); 
         } 
        } 
       } 
      } 
     } 
    } 
} 

}

Смежные вопросы