gpt4 book ai didi

java - switch with while循环不会在被告知时结束

转载 作者:行者123 更新时间:2023-11-29 07:35:56 26 4
gpt4 key购买 nike

我有两个方法,getOption()driver()

getOption() 从扫描器中获取一个字符串,将其分解为单个单词,然后返回一个字符串数组。

driver() 然后获取该数组的第一个值 getOption()[0],并根据第一个 String 开始一个 while 循环。虽然 String 不等于“退出”,但检查该值是否与任何 switch case 匹配。但是,当我运行它时,它可以执行任何 switch case,但 quit 语句永远不起作用。谁能帮帮我?

public String[] getOption(){
String optionLine[];
Scanner input = new Scanner(System.in);
System.out.println("Input string\n");
String line = input.nextLine();
optionLine = line.split(" ");
return optionLine;
}

public void driver(){
String option = getOption()[0];
Stats s = new Stats(data);
while (!"quit".equals(option)){
switch (option) {
case "add": //data.put(getOption()[1], getValues());
System.out.println("add");
break;
case "set": System.out.println("set");
break;
case "print": System.out.println(Arrays.toString(data));
break;
case "sum": System.out.println(s.sum());
break;
case "mean": System.out.println(s.mean());
break;
case "stdev": System.out.println(s.standardDeviation());
break;
case "median": System.out.println(s.median());
break;
case "primes": System.out.println(s.primes());
break;
case "summary": System.out.println("summary");
break;
//case "test": System.out.println(Arrays.toString(getValues()));
}
driver();
}
}

最佳答案

您在 while 循环结束时递归调用方法 driver();

无论您是否阅读了getOption,您仍然会返回方法内部...

这就是 while 条件显然不工作的原因......

一个非常不寻常的陷阱。

关于java - switch with while循环不会在被告知时结束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35805248/

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