2016-10-26 4 views
0

Я очень новичок в Java. Сейчас я беру свой первый Java-класс.Оператор преобразования Java преобразования в другой тип

Я пытаюсь найти способ переписать следующий код, используя что-то другое, кроме инструкции переключения. Этот код связан с игрой в судоку. Мне нужно задать вопрос пару раз, после чего мне нужно рассчитать статистику, основанную на ответах.

Обратите внимание, что я участвую в классе начинающих и не могу использовать расширенные Java-коды.

String response = "Y"; 

while (response.toLowerCase().equals("y")) 
{ 

    System.out.println("Please choose the game level"); 
    System.out.println(" -----------------------------------"); 
    System.out.println(" Enter 1 for Sudoku level Beginner"); 
    System.out.println(" Enter 2 for Sudoku level Advanced"); 
    System.out.println(" Enter 3 for Sudoku level Expert"); 
    System.out.println(" -----------------------------------"); 

    Sudoku = sudoku.nextInt(); 

    if (Sudoku == 1) { 

     int choice1 = 0; 

     nbGames_Easy++; 

     System.out.println("Have you won the game ?"); 

     System.out.print(" Enter 4 for yes "); 

     System.out.print(" Enter 5 for no "); 

     choice1 = sudoku.nextInt(); 

     sudoku.nextLine(); 

     switch (choice1) 

     { 

      case 4: 

       nbGamesEasy_Finished++; 

       successRate_Easy = nbGamesEasy_Finished/nbGames_Easy * 100; 

       System.out.println("How many time did you take to fill the grid ?"); 

       System.out.println("The time must be in minutes"); 

       String display5 = sudoku.nextLine(); 

       resolutionTime_easy = (nbGamesEasy_Finished * resolutionTime_easy) + Integer.parseInt(display5)/(nbGamesEasy_Finished); 

       break; 

      case 5: 

       successRate_Easy = nbGamesEasy_Finished - 1/nbGames_Easy * 100; 

      default: 

       break; 
     } 

    } 
} 
+1

Это один из тех редких случаев, когда переключатель не ужасная идея. Единственный другой вариант - использовать дерево if ... else, которое * может быть более аккуратным. – Carcigenicate

+0

, то снова используйте оператор if else для коммутатора, как то, что вы сделали, если (Sudoku == 1) – jace

ответ

2

Для уровня новичка, вы можете заменить переключатель заявление с if-то еще, если заявление, как вы делали ранее в своем коде. Вы могли бы попробовать что-то, как показано ниже:

if (choice1 == 4){ 

     nbGamesEasy_Finished++; 

     successRate_Easy = nbGamesEasy_Finished/nbGames_Easy * 100; 

     System.out.println("How many time did you take to fill the grid ?"); 

     System.out.println("The time must be in minutes"); 

     String display5 = sudoku.nextLine(); 

     resolutionTime_easy = (nbGamesEasy_Finished * resolutionTime_easy) + Integer.parseInt(display5)/(nbGamesEasy_Finished); 

} 
else if (choice1 == 5){ 

     successRate_Easy = nbGamesEasy_Finished - 1/nbGames_Easy * 100; 

} 
else { 

     //default 

} 
+0

Большое вам спасибо! Это действительно помогло мне. Это именно то, что мне нужно! – Zyplexx

1

Для переключения заявления

if (choice1 == 4) 

    { 
      nbGamesEasy_Finished++; 

      successRate_Easy = nbGamesEasy_Finished/nbGames_Easy * 100; 

      System.out.println("How many time did you take to fill the grid ?"); 

      System.out.println("The time must be in minutes"); 

      String display5 = sudoku.nextLine(); 

      resolutionTime_easy = (nbGamesEasy_Finished * resolutionTime_easy) + Integer.parseInt(display5)/(nbGamesEasy_Finished); 
    } 

    else if (choice1 == 5) 
    { 
      successRate_Easy = nbGamesEasy_Finished - 1/nbGames_Easy * 100; 
    } 

// and for default, use else 

    else 
    { 
     //this is the default statement 
     //you can do what you want here if not 4 or 5 
    } 
Смежные вопросы