gpt4 book ai didi

Java使用HashMap用户输入循环

转载 作者:行者123 更新时间:2023-12-01 22:19:52 24 4
gpt4 key购买 nike

我看到一个学生注册示例,想用自己的方式使用HashMap来编写它,以了解更多关于HashMap的信息。

关于该计划:1)您可以添加学生姓名和学号-类(class)学生

import java.util.*;

public class Student {

Scanner userInput = new Scanner(System.in);

public String sName(){

System.out.print("Enter student name: ");
String sName = userInput.next();

return sName;
}

public char sID(){
System.out.print("Enter student ID: ");
char sID= userInput.next().charAt(0);

return sID;

}

}

2)在一个类中,我声明了 2 个 HashMap 变量,一个用于学生姓名和 id,第二个用于 GPA 和 id -class AddInfo

import java.util.*;

public class AddInfo {

public HashMap<String,Character> studentInfo= new HashMap<String,Character>();
public HashMap<Double,Character> studentGPAInfo= new HashMap<Double,Character>();

}

3)您可以添加学生GPA和学生ID – 类(class)StudentGPA

import java.util.*;

public class StudentGPA {

Scanner userInput = new Scanner(System.in);

public double sGPA(){

System.out.print("Enter student GPA: ");
double sGPA = userInput.nextDouble();

return sGPA;
}

public char sID(){
System.out.print("Enter student ID: ");
char sID= userInput.next().charAt(0);

return sID;

}

}

4) 最后一个,使用 .put - GetInfo 类来利用上述类的所有信息

import java.util.*;

public class GetInfo {

public HashMap<String,Double> myStudent=new HashMap<String,Double>();

public void addName(){

Student s= new Student();
StudentGPA sG= new StudentGPA();


AddInfo ai= new AddInfo();

ai.studentInfo.put(s.sName(), s.sID());
ai.studentGPAInfo.put(sG.sGPA(),sG.sID());


if(s.sID()== sG.sID()){
myStudent.put(s.sName(), sG.sGPA());

System.out.println("For student id "+ s.sID()+ "you have " + myStudent);
}

}

}

5)主类

public class Main {

public static void main (String []args){

GetInfo g= new GetInfo();

g.addName();

}

}

我的问题:我认为我的问题出在第四点(GetInfo 类),我试图评估 2 个学生 ID 是否相同。如果它们相同,则将它们放入不同的 HashMap 变量中。

if(s.sID()== sG.sID())

当我执行该程序时,它不断要求输入学生 ID。

任何方向/建议都会有帮助。感谢您的宝贵时间和投入。

最佳答案

每次你这样做

if(s.sID()== sG.sID())

您正在调用 StudentGPA 类的 sID() 方法,其内容如下:

public char sID(){
System.out.print("Enter student ID: ");
char sID= userInput.next().charAt(0);

return sID;

}

当然,系统会提示您输入。

您应该编写一个 setSid() 来设置实例变量中的值,然后编写一个仅返回 sIDgetSid() 方法code> 值而不提示输入。

那么你的 if 语句将如下所示:

if(s.getSid()== sG.getSid())

关于Java使用HashMap用户输入循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30090197/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com