在Java編程中,如何在學(xué)生ID重復(fù)時(shí)停止后續(xù)代碼執(zhí)行?

在Java編程中,如何在學(xué)生ID重復(fù)時(shí)停止后續(xù)代碼執(zhí)行?

Java程序:避免學(xué)生ID重復(fù),優(yōu)化代碼執(zhí)行

本文探討如何在Java程序中,有效處理學(xué)生信息錄入時(shí)ID重復(fù)的問題,避免重復(fù)輸入其他信息。

問題: 現(xiàn)有代碼在檢測到學(xué)生ID重復(fù)后,仍然繼續(xù)執(zhí)行后續(xù)的姓名、年齡、地址錄入流程。

改進(jìn)方案: 通過改進(jìn)數(shù)據(jù)結(jié)構(gòu)和代碼邏輯,在檢測到ID重復(fù)時(shí)立即停止后續(xù)操作。

解決方案:

立即學(xué)習(xí)Java免費(fèi)學(xué)習(xí)筆記(深入)”;

采用HashMap存儲(chǔ)學(xué)生信息,以學(xué)生ID作為鍵,實(shí)現(xiàn)高效的ID重復(fù)性檢查。 修改后的代碼如下:

import java.util.HashMap; import java.util.Map; import java.util.Scanner;  public class StudentManager {      private static Map<String, Student> studentMap = new HashMap<>();      public static int addStudent() {         Scanner scanner = new Scanner(System.in);         System.out.print("請輸入學(xué)生ID:");         String studentId = scanner.next();          if (studentMap.containsKey(studentId)) {             System.out.println("學(xué)生ID已存在,添加失敗!");             return 0; // ID重復(fù),立即返回         }          Student student = new Student();         student.setId(studentId);         System.out.print("請輸入學(xué)生姓名:");         student.setName(scanner.next());         System.out.print("請輸入學(xué)生年齡:");         student.setAge(scanner.nextInt());         System.out.print("請輸入學(xué)生住址:");         student.setAddress(scanner.next());          studentMap.put(studentId, student);         System.out.println("學(xué)生信息添加成功!");         return 1;     }       public static class Student {         private String id;         private String name;         private int age;         private String address;          //getter and setter methods         public String getId() { return id; }         public void setId(String id) { this.id = id; }         public String getName() { return name; }         public void setName(String name) { this.name = name; }         public int getAge() { return age; }         public void setAge(int age) { this.age = age; }         public String getAddress() { return address; }         public void setAddress(String address) { this.address = address; }     }      public static void main(String[] args) {         addStudent();     } }

代碼解釋:

  1. 使用HashMap: studentMap 使用HashMap存儲(chǔ)學(xué)生信息,鍵為學(xué)生ID,值為Student對象。HashMap 提供了containsKey() 方法,可以快速高效地檢查ID是否存在。

  2. 提前檢查ID: 在錄入其他信息之前,立即使用studentMap.containsKey(studentId) 檢查ID是否已存在。如果存在,則打印錯(cuò)誤信息并立即返回,停止后續(xù)操作。

  3. 靜態(tài)變量: studentMap 聲明為靜態(tài)變量,保證在多次調(diào)用addStudent() 方法時(shí),數(shù)據(jù)可以被保留。

通過這些改進(jìn),程序能夠在檢測到ID重復(fù)時(shí)立即停止,避免了不必要的輸入操作,提高了代碼效率和用戶體驗(yàn)。

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊14 分享