关于Java循环的问题

请问switch…case循环能做到判断scanner传入的值去判断数组有没有这个值,有就执行case方法体把scanner传入的值赋值给容器啊,如果传入的没有,就结束。

如果这个方法行不通,那么用什么来做数组和scanner之间的对比判断呢。

本人有一个小作业,遇到这个需要把扫描器传进来的数值和数组里的数值进行对比,对的就赋值给容器后再输出,没有就像else一样结束,不求师傅帮忙写作业,只求师傅能指导一下。

其实我觉得用switch...case是在已知道用户要输入了什么情况下用,我认为用if更好点,先获取输入值,然后再遍历数组判断是否正确

可以做判断,但不需要 switch case,示例代码如下:

public class Test {

    public static void main(String[] args) {
        List<String> list = new ArrayList<>();

        String[] strs = new String[]{"aaa", "bbb", "ccc"};
        System.out.println("请输入:");
        Scanner scanner = new Scanner(System.in);
        String input = scanner.next();
        for (String str : strs) {
            if (str.equals(input)) {
                list.add(str);
            }
        }
        System.out.println("添加到列表中的值为:" + list);
    }
}

执行结果如下:

img

对于未知的值 switch…case 不太好做;
简单点就用一个 循环遍历数组的值,然后依次与输入的值 用if 做对比