目前,我正在做一个显示所有奇数的任务,直到用户输入特定的奇数。要求包括输入数字,但是,我不明白为什么与用户输入的代码相比,代码总是转到下一个奇数数字。请帮忙。

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);
     }

最佳答案

这是因为i0开始(它是偶数),并且要检查它是否小于capp_number(应该是奇数),然后将两个加到i中。 startingNumber1开始,所以很奇怪。因此,如果用户输入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)

08-05 08:35