伊莉討論區

標題: 關於switch case寫法 [打印本頁]

作者: 貓又島    時間: 2019-11-3 06:58 PM     標題: 關於switch case寫法

本帖最後由 貓又島 於 2019-11-3 06:59 PM 編輯

如題小弟是新手
對於剛入門 做出來的結果有少許錯誤
希望能請求大神們幫幫忙
非常感謝大家。




作者: ahway9988    時間: 2019-11-8 07:53 AM

可以的話,請把程式碼放上來,針對您的錯誤解決問題會比較好
作者: tryit244178    時間: 2019-11-22 02:01 PM

本帖最後由 tryit244178 於 2019-12-4 10:43 AM 編輯

參考看看吧
  1. import java.util.Scanner;

  2. public class Score {
  3.         public static void main(String[] args) {
  4.                 int[] sr = {15, 20, 64, 90, 81, 52, 78, 12, 64, 75, 43, 78, 35, 47, 97};
  5.                 Manager m = new Manager();
  6.                 m.Start(sr);
  7.         }
  8. }

  9. class Manager{
  10.         public void Start(int[] sr) {
  11.                 int select = 3;
  12.                 ScoreSystem[] ss = Initilize(sr);
  13.                
  14.                 do {
  15.                         select = ShowMenu();
  16.                         if (IsSelect(select))
  17.                                 ss[select].Start();
  18.                 } while (select!=3);
  19.         }
  20.         
  21.         private ScoreSystem[] Initilize(int[] sr) {
  22.                 ScoreSystem[] ss = {new ShowScore(sr),
  23.                                                   new SeachScore(sr),
  24.                                                   new ModifyScore(sr)};
  25.                 return ss;
  26.         }
  27.         
  28.         private int ShowMenu() {
  29.                 System.out.println("\n------選單------\n"+
  30.                                    "1: 顯示成績\n"+
  31.                                    "2: 查詢成績\n"+
  32.                                    "3: 修改成績\n"+
  33.                                    "4: 離開作業");
  34.                 System.out.print("選擇作業(1 到 4)==> ");
  35.                 Scanner sc = new Scanner(System.in);
  36.                 int result = sc.nextInt();
  37.                 return --result;
  38.         }
  39.         
  40.         private boolean IsSelect(int select) {
  41.                 if (select>-1 && select<3)
  42.                         return true;
  43.                 return false;
  44.         }
  45. }

  46. abstract class ScoreSystem{
  47.         int[] sr;
  48.         
  49.         abstract void Start();

  50.         int EnterSN(String s) {
  51.                 System.out.print("選擇要" + s + "的學號(1 到 " + sr.length + ")==> ");
  52.                 Scanner sc = new Scanner(System.in);
  53.                 return sc.nextInt();
  54.         }
  55.         
  56.         boolean IsSN(int sn) {
  57.                 if (sn>0 && sn<=sr.length)
  58.                         return true;
  59.                 return false;
  60.         }
  61. }

  62. class ShowScore extends ScoreSystem{
  63.         public ShowScore(int[] source) {
  64.                 sr = source;
  65.         }
  66.         
  67.         @Override
  68.         public void Start() {
  69.                 System.out.println("\n顯示成績:");
  70.                 for (int i=0; i<sr.length; i++) {
  71.                         System.out.println("學號 " + (i+1) + "\t,成績:" + sr[i]);
  72.                 }
  73.         }
  74. }

  75. class SeachScore extends ScoreSystem {
  76.         public SeachScore(int[] source) {
  77.                 sr = source;
  78.         }
  79.         
  80.         @Override
  81.         public void Start() {
  82.                 System.out.println("\n查詢成績");
  83.                 int sn = EnterSN("查詢");
  84.                 if (IsSN(sn))
  85.                         System.out.println("\n學號 " + sn + "\t,成績:" + sr[--sn]);
  86.         }
  87. }

  88. class ModifyScore extends ScoreSystem {
  89.         public ModifyScore(int[] source) {
  90.                 sr = source;
  91.         }
  92.         
  93.         @Override
  94.         public void Start() {
  95.                 System.out.println("\n修改成績");
  96.                 int sn = EnterSN("修改");
  97.                 if (IsSN(sn)) {
  98.                         System.out.print("\n原成績:" + sr[--sn] + "\t");
  99.                         Modify(sn);
  100.                 }
  101.         }
  102.         
  103.         private void Modify(int sn) {
  104.                 System.out.print("輸入新成績==>");
  105.                 Scanner sc = new Scanner(System.in);
  106.                 sr[sn] = sc.nextInt();
  107.         }
  108. }
複製代碼



作者: 貓又島    時間: 2019-11-26 08:57 PM

tryit244178 發表於 2019-11-22 02:01 PM
參考看看吧

謝謝 阿抱歉因為近期比較忙所以後來沒上,這問題後來有解決了
總之還是很感謝大大的參考~
作者: z1090128    時間: 2019-11-30 12:38 AM

感謝分享,有增加我的CODING知識!!!!!!




歡迎光臨 伊莉討論區 (http://www89.eyny.com/) Powered by Discuz!