gpt4 book ai didi

java - 请求输入直到满足条件并返回此输入的方法

转载 作者:行者123 更新时间:2023-12-02 12:04:45 25 4
gpt4 key购买 nike

我在 Java 中编写方法时遇到问题,该方法要求用户输入字母,直到用户实际键入字母。然后我希望我的方法返回这封信。

因此,如果用户输入“2”,我希望我的方法再次请求一封信。

我尝试在下面编写代码,但字母是在循环内创建的,因此我无法在循环外返回它。

public String askForLetter() {
Scanner in = new Scanner(System.in);
int flag = 1;
do {
System.out.println("Type a letter");
String letter = in.next();
if (isLetter(letter)) {
flag = 2;
return letter;
} else
throw new IllegalArgumentException("Illegal argument, try again");
} while (flag == 1)
return letter;
}

遇到这种问题该如何处理?

最佳答案

这里有几个问题,但幸运的是它们都很容易解决。

首先,您希望循环继续,直到获得有效输入。抛出异常是继续正常执行路径的好方法,因此不要抛出异常;这里不需要它。

您也不需要在循环内返回字母。它实际上并没有伤害任何东西,但它确实使外部返回变得多余。因此,为了可读性和良好的设计,最好将其删除。

最后,您主要关心的是变量是在循环内定义的这一事实,即处理一个称为变量作用域的问题。变量的范围(大致)是它所属的最小的大括号括起来的 block 。因此,如果您想在循环外访问它,请在循环外声明它并为其分配默认值。

public String askForLetter() {
Scanner in = new Scanner(System.in);
int flag = 1;
String letter = "";
do {
System.out.println("Type a letter");
letter = in.next();
if (isLetter(letter)) {
flag = 2;
}
} while (flag == 1)
return letter;
}

关于java - 请求输入直到满足条件并返回此输入的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46976007/

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