目前,我正在做一个显示所有奇数的任务,直到用户输入特定的奇数。要求包括输入数字,但是,我不明白为什么与用户输入的代码相比,代码总是转到下一个奇数数字。请帮忙。
import java.util.Scanner;
public class OddNumbers {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Pls enter an odd number you want to finish to: ");
int capp_number = input.nextInt();
int startingNumber = 1;
for(int i = 0; i < capp_number; i+= 2){
startingNumber += 2;
System.out.println(startingNumber);
}
最佳答案
这是因为i
从0
开始(它是偶数),并且要检查它是否小于capp_number
(应该是奇数),然后将两个加到i
中。 startingNumber
从1
开始,所以很奇怪。因此,如果用户输入5,它将变为:
迭代1:
i (0) < 5 ? Yes:
print startingNumber+2
output: 3
i == 2
迭代2:
i (2) < 5 ? Yes:
print startingNumber +2
output: 5
i == 4
迭代3:
i (4) < 5 ? Yes:
print startingNumber +2
output: 7
i == 6
迭代4
i (6) < 5 No:
end loop
要解决此问题,请从以下位置开始
i
:for(int i = 1; i < capp_number; i+= 2)