输出10个数,还有1,2,3的个数和非法的个数

img

img

没看懂,你的代码呢?问题是什么


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为非法的个数,123为各自的个数
        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]);
    }
}

运行示例:

img