我的代码有问题,我无法摆脱循环。我必须创建一个程序,在其中输入一个数字,然后要求我输入一个大于第一个值的奇数值。例如,我输入 12,为了让程序结束,我必须输入 13、15、17 或任何大于 12 的奇数。如果我输入一个偶数,它会告诉我再试一次。如果我输入一个小于值 (12) 的奇数 (3),它告诉我我必须输入一个大于 12 的值。
我知道这个程序的逻辑是如何工作的,我认为我做得对。好的,例如,当我运行程序并输入 12,然后输入下一个值 (15) 时,它会做它应该做的事情。但我输入 12,然后输入一个小于 12 的数字,例如 3 或偶数,而不是大于 12 的奇数,它一直告诉我再试一次,即使我输入了一个像 15 这样的好值。基本上循环不断重复它一遍又一遍地自我。
我是java新手,所以我很难弄清楚我做错了什么。我研究了while循环,但我不知道如何摆脱循环。
到目前为止,这是我的代码。
import java.util.*;
public class bonus2 {
static Scanner input = new Scanner(System.in);
public static void main(String[] args) {
System.out.print("Please Enter any number: ");
int theValue = getBigOddValue(0);
System.out.printf("The Value gotten was %d. \n", theValue);
}
private static int getBigOddValue(int value) {
value = input.nextInt();
System.out.printf("Enter an odd number greater than " + value + ": ");
int cutoff = input.nextInt();
int val = cutoff;
while (val % 2 == 0){
System.out.printf("The number is even. Try again: ");
input.nextInt();
}
while (val<value){
System.out.printf("The number must be greater than " + value
+ ". Try again: ");
input.nextInt();
}
return cutoff;
}
SAMPLE RUNS(我的跑步应该是什么样子)。
**Call (and return displayed):**
theValue =getBigOddValue(14);
System.out.printf("The value gottenwas %d.\n",theValue);
**Machine-user interaction of above:**
Enter an odd number greater than 14: 2
The number is even. Try again: 28
The number is even. Try again: 11
The number must be greater than 14. Try again: 3
The number must be greater than 14. Try again: 18
The number is even. Try again: 9
The number must be greater than 14. Try again: 19
The value gotten was 19.