2016-04-14 64 views
1

我想編寫一個簡單的程序,用戶可以查看和更新​​MVP獎盃的NBA球員比賽列表。然而,我過去未能編寫一個程序,在程序中可以循環多長時間用戶決定。我想讓程序擁有選項1.返回& 2.退出但我無法弄清楚如何循環它。這是我的Rank.java & AdminAccount.java。希望它不會理解,感謝您的閱讀。如何在Java中循環一個簡單的程序?

import java.util.Scanner; 

public class Rank { 
    String player[] = { "Stephen Curry", "Russel Westbrook", "Kevind Durant", "LeBron James", "Kawhi Leonard" }; 
    Scanner rankInput = new Scanner(System.in); 
    Scanner playerInput = new Scanner(System.in); 
    int rank; 
    String playerUpdate; 

    public void Rank() { 
     System.out.println("Rank\tPlayer"); 
     for (int counter = 0; counter < player.length; counter++) { 
      System.out.println(counter + 1 + "\t" + player[counter]); 
     } 
    } 

    public void updateRank() { 
     System.out.print("Select rank to update: "); 
     rank = rankInput.nextInt(); 

     if (rank == 1) { 
      System.out.print("\nPlayer Name: "); 
      playerUpdate = playerInput.nextLine(); 
      player[0] = playerUpdate; 
     } else if (rank == 2) { 
      System.out.print("\nPlayer Name: "); 
      playerUpdate = playerInput.nextLine(); 
      player[1] = playerUpdate; 
     } else if (rank == 3) { 
      System.out.print("\nPlayer Name: "); 
      playerUpdate = playerInput.nextLine(); 
      player[2] = playerUpdate; 
     } else if (rank == 4) { 
      System.out.print("\nPlayer Name: "); 
      playerUpdate = playerInput.nextLine(); 
      player[3] = playerUpdate; 
     } else if (rank == 5) { 
      System.out.print("\nPlayer Name: "); 
      playerUpdate = playerInput.nextLine(); 
      player[4] = playerUpdate; 
     } 
    } 
} 

import java.util.Scanner; 

public class AdminAccount { 

    public static void main(String[] args) { 
     Rank rank = new Rank(); 

     Scanner adminInput = new Scanner(System.in); 
     Scanner exitInput = new Scanner(System.in); 

     boolean keepRunning = true; 
     // menu variables 
     int menuOption; 
     int exitOption; 

     while (keepRunning) { 
      System.out.println("*** NBA MVP Race Administor Account ***"); 
      System.out.print("\n1.Ranking 2.Update\t- "); 
      menuOption = adminInput.nextInt(); 
      System.out.println(""); 

      if (menuOption == 1) { 
       rank.Rank(); 
      } else if (menuOption == 2) { 
       rank.updateRank(); 
      } 
     } 
    } 
} 
+2

爲什麼不'如果(1 <=秩秩&& <= 5)是System.out.print {(「\ nPlayer名稱:「); playerUpdate = playerInput.nextLine(); player [rank - 1] = playerUpdate;}'而不是在'updaterank()'中重複幾乎相同的代碼? – MikeCAT

+0

我會改變它謝謝你。 –

+0

「希望它不會混淆理解」這是理解混淆。你能把它歸結爲完整展示你的問題所需的最小代碼嗎?這也可以幫助你自己弄清楚自己,試着編寫一個只有你想解決的問題的程序,而不是關於NBA球員或其他任何東西。請參閱此處獲取更多信息:https://stackoverflow.com/help/mcve – Roman

回答

1

只需添加一個 「退出」 選項,你的循環:

while(keepRunning){ 
    System.out.println("*** NBA MVP Race Administor Account ***"); 
    System.out.print("\n1.Ranking 2.Update 3.Exit\t- "); 
    menuOption = adminInput.nextInt(); 
    System.out.println(""); 

    if(menuOption == 1) 
    { 
     rank.Rank(); 
    } 
    else if(menuOption == 2) 
    { 
     rank.updateRank(); 
    } 
    else 
    { 
     keepRunning = false; 
    } 
} 
+0

如果我想在更新AdminAccount.java和Rank.java後返回菜單,該怎麼辦? –

+0

@ L.Costa你是什麼意思「回去」它應該重新顯示'System.out.println(「*** NBA MVP Race Administor Account ***」);在更新/顯示之後...' – brso05

+0

現在我明白了,它會一直循環直到用戶選擇退出。謝謝。 –