import java.util.*;
import java.util.Map.Entry;
public class fff2 {
public static void main(String[] args) throws NullPointerException{
try {
LinkedHashMap<String, Integer> score = new LinkedHashMap<String,Integer>();
score.put("Fail",39);
score.put("Third Class", 49);
score.put("Second Class, Division 2",59);
score.put("Second Class, Division 1",69);
score.put("First Class",70);
Scanner scan = new Scanner(System.in);
System.out.println("What was your mark?");
int mark = scan.nextInt();
if(mark >100 && mark < 0) {
System.out.println("Invalid Input: out of range.");
}
for(String i: score.keySet()) {
if(mark< score.get(i)) {
System.out.println("You got a "+i);
break;
}
}
}
catch(InputMismatchException e) {
System.out.println("Invalid Input, program terminating");
}
}
所以我正在尝试制定一个评分系统,但它不起作用,我能帮点忙吗?我正试图让40分成为第三类的及格分数,但我想用一个哈希图来挑战自己,而不是切换的情况。
我想你想要这样的东西:
LinkedHashMap<String, Integer> score = new LinkedHashMap<String,Integer>();
score.put("Fail",39);
score.put("Third Class", 49);
score.put("Second Class, Division 2",59);
score.put("Second Class, Division 1",69);
score.put("First Class",70);
Scanner scan = new Scanner(System.in);
System.out.println("What was your mark?");
String keyScore = scan.nextString();
System.out.println(score.getOrDefault(keyScore, "Invalid Input: key not in map"));
在输入时,您放置地图中的一个键,而不是值。
更换
score.put("First Class",70);
带有
score.put("First Class",100);
并取代
if(mark< score.get(i)) {
带有
if(mark<= score.get(i)) {
import java.util.*;
public class fff {
public static void main(String[] args) throws NullPointerException{
try {
LinkedHashMap<Integer, String> score = new LinkedHashMap<Integer,String>();
score.put(70, "First class");
score.put(59, "Second Class, Division 1");
score.put(49, "Second Class, Divison 2");
score.put(39, "Third Class");
Scanner scan = new Scanner(System.in);
System.out.println("What was your mark?");
int mark = scan.nextInt();
if(mark >100 && mark < 0) {
System.out.println("Invalid Input: out of range.");
}
for(Integer i: score.keySet()) {
if(mark <= 39) {
System.out.println("You got a Fail");
System.exit(0);
}
if(mark>=i) {
System.out.println("You got a "+score.get(i));
break;
}
}
}
catch(InputMismatchException e) {
System.out.println("Invalid Input, program terminating");
}
}
}
这是我的最后一个代码,现在可以工作了。