如何在代碼中實現條件控制,避免不必要的輸入操作?

如何在代碼中實現條件控制,避免不必要的輸入操作?

高效代碼:條件控制與輸入優化

程序設計中,巧妙運用條件控制語句能有效避免冗余輸入,提升代碼效率。本文以學生信息錄入為例,講解如何優化代碼,避免在學生ID重復時重復輸入姓名、年齡和住址等信息。

原始代碼存在以下問題:ArrayList list在每次函數調用時都重新創建為空,導致ID重復檢查失效;sc.next()的多次調用導致輸入值錯位。

改進后的代碼如下:

public static int addStudent(Student a, ArrayList<Student> list) {     Scanner sc = new Scanner(System.in);     Student st = new Student();     int temp = 0; // 判斷是否添加成功     System.out.println("請輸入學生id");     String inputId = sc.next();      // 檢查ID是否重復     for (Student s : list) {         if (inputId.equals(s.getId())) {             System.out.println("學生ID已存在!");             return temp; // ID重復,直接返回         }     }      st.setId(inputId);     System.out.println("請輸入學生姓名");     st.setName(sc.next());     System.out.println("請輸入學生年齡");     st.setAge(sc.nextInt());     System.out.println("請輸入學生住址");     st.setAddress(sc.nextLine()); // 使用 nextLine() 讀取整行輸入,避免換行符干擾     temp = 1;     list.add(st); // 添加學生信息到列表     return temp; }

關鍵改進:

  1. 外部傳入學生列表: 將ArrayList list作為參數傳入函數,避免每次調用都重新創建列表,確保ID重復檢查基于全局學生信息。

  2. 提前讀取ID: 將ID輸入單獨處理,存儲在inputId變量中,避免輸入錯位。

  3. 使用nextLine(): 在讀取住址時使用sc.nextLine(),避免nextInt()留下換行符干擾后續輸入。

  4. 添加學生信息: 在成功添加學生信息后,將st添加到list中。

  5. 提示信息: 添加了ID重復的提示信息,提升用戶體驗。

通過這些改進,代碼邏輯清晰,避免了不必要的輸入操作,提高了代碼效率和可維護性。 建議開發者熟練使用調試工具,例如斷點調試,幫助理解代碼執行流程,及時發現并解決問題。

? 版權聲明
THE END
喜歡就支持一下吧
點贊8 分享