我有一个验证字符串的方法。
在我的作业中,一个方法不能有超过1个返回。
如何使此方法在do while循环结束后只返回一个值?
public final static String CHOIX_MENUS_VALIDES = "1234";
public static String validateMenu() {
String choice;
String choice1 = String.valueOf(CHOIX_MENUS_VALIDES.charAt(0));
String choice2 = String.valueOf(CHOIX_MENUS_VALIDES.charAt(1));
String choice3 = String.valueOf(CHOIX_MENUS_VALIDES.charAt(2));
String choice4 = String.valueOf(CHOIX_MENUS_VALIDES.charAt(3));
do {
choice = validateString(MSG_SOLL_MENU, MSG_ERR_MENU, 1, 4, true);
if (choice.trim().equals(choice1) || choice.trim().equals(choice2) || choice.trim().equals(choice3) || choice.trim().equals(choice4)) {
return choice; //Here I don't want to return the choice
}
if (!choice.equals(choice1) || !choice.equals(choice2) || !choice.equals(choice3) || !choice.equals(choice4)) {
System.out.println(MSG_ERR_MENU);
}
} while(!choice.trim().equals(choice1) || !choice.trim().equals(choice2) || !choice.trim().equals(choice3) || !choice.trim().equals(choice4));
return choice;
}
如果有人能帮我重建这个方法,只在最后返回一个值,我将不胜感激。
1条答案
按热度按时间soat7uwm1#
简单的解决方案是替换第一个返回
return choice;
//在这里我不想返回选择通过
break
;另一种解决方案是使用布尔变量(让
stay
)在每次循环迭代中,您都将变量设置为
true
(即。,boolean stay = true;
)所以只有当变量被设置为false
. 因为我们把第一个return
从一开始if(..)
加上变量,我们必须改变第二个if
到一个else if
如果第一个if
计算结果为true。最后,添加新变量作为while条件的一部分。