没看懂,你的代码呢?问题是什么
public class Out {
public static void main(String[] args) {
Map<String,Integer> map = new HashMap<>(10);
for (int i = 1;i<11;i++) {
System.out.println("请输入第"+i+"个数字:");
Scanner scanner = new Scanner(System.in);
int in = scanner.nextInt();
add(map,in);
}
System.out.println(map);
}
public static void add(Map<String,Integer> map,int i) {
if (i >= 1 && i<=3) {
switch (i) {
case 1:
map.put("1的个数:",map.get("1的个数:") == null ? 1 : map.get("1的个数:") + 1);
break;
case 2:
map.put("2的个数:",map.get("2的个数:") == null ? 1 : map.get("2的个数:") + 1);
break;
case 3:
map.put("3的个数:",map.get("3的个数:") == null ? 1 : map.get("3的个数:") + 1);
break;
default:
}
}else {
map.put("非法的个数:",map.get("非法的个数:") == null ? 1 : map.get("非法的个数:") + 1);
}
}
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// 索引 0为非法的个数,1、2、3为各自的个数
int[] cache = new int[4];
for (int i = 1; i <= 10; i++) {
System.out.format("请输入第%d个数: ", i);
int val = sc.nextInt();
if (val >=1 && val <= 3) cache[val]++;
else cache[0]++;
}
for (int i = 1; i <= 3; i++) {
System.out.format("%d的个数: %d\n", i, cache[i]);
}
System.out.format("非法的个数: %d", cache[0]);
/* out:
请输入第1个数: 1
请输入第2个数: 2
请输入第3个数: 3
请输入第4个数: 1
请输入第5个数: 2
请输入第6个数: 3
请输入第7个数: 1
请输入第8个数: 2
请输入第9个数: 3
请输入第10个数: 4
1的个数: 3
2的个数: 3
3的个数: 3
非法的个数: 1
*/
}
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int[] val = new int[4];
Scanner scanner = new Scanner(System.in);
for (int i = 0; i < 10; i++) {
System.out.print("请输入第" + (i + 1) + "个数字:");
int v = scanner.nextInt();
if (v >= 1 && v <= 3) {
val[v - 1]++;
} else {
val[3]++;
}
}
System.out.println("1的个数:" + val[0]);
System.out.println("2的个数:" + val[1]);
System.out.println("3的个数:" + val[2]);
System.out.println("非法的个数:" + val[3]);
}
}
运行示例: