Java:Do-while 循环,偶数然后重试

Java:Do-while Loop, Even number then trying again

我可以简单地循环,但是我很难只做偶数和奇数。例如,我希望它像这样:

输入您的电话号码:20

2 4 6 8 10 12 14 16 18 20

你想再做一次吗? Yes/No?

我的代码:

public static void main(String[] args) {
    Scanner input=new Scanner(System.in);
    String c = null;
    do {
        int i;
        System.out.println("Enter a Number:");
        int n = input.nextInt();

        for(i=1; i<n; i++) {
            System.out.println(i);
            if(n%2==0) {
                System.out.println(i + " " );

            }
            System.out.println("Try Again? Y/N");
            c = input.next();   

        }
    }while(c.equalsIgnoreCase("y"));
}

您的代码说 if (n%2 == 0) 但循环遍历 i。这个n在每次循环中永远不会改变。

这可能不是您代码中的唯一问题,但您当然应该查看 i 在循环中执行的操作,而不是该行中的 n

您需要检查 i % 2 == 0 而不是 n % 2 == 0

演示:

import java.util.Scanner;

class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        String c = null;
        do {
            System.out.print("Enter a Number: ");
            int n = input.nextInt();

            for (int i = 1; i <= n; i++) {
                if (i % 2 == 0) {
                    System.out.print(i + " ");
                }
            }

            System.out.print("\nTry Again? Y/N: ");
            c = input.next();
        } while (c.equalsIgnoreCase("y"));
    }
}

样本运行:

Enter a Number: 20
2 4 6 8 10 12 14 16 18 20 
Try Again? Y/N: y
Enter a Number: 25
2 4 6 8 10 12 14 16 18 20 22 24 
Try Again? Y/N: n