【问题标题】:Java:Do-while Loop, Even number then trying againJava:Do-while 循环,偶数然后再试一次
【发布时间】:2021-03-27 17:53:39
【问题描述】:

我可以简单地循环,但我很难只做偶数和奇数。例如,我想要这样的:

输入您的号码:20

2 4 6 8 10 12 14 16 18 20

你想再做一次吗?是/否?

我的代码:

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

【问题讨论】:

  • 您需要将代码复制/粘贴到您的问题中,而不是将图像链接到代码。您正在打印“再试一次?”每次通过循环。那是你要的吗?您希望该问题(之后)循环完成。
  • @lurker 好吧,如果他们放 N 就不会再看了,所以这似乎是他们想要的。
  • 看起来你的代码可以工作。你试过了吗?
  • @corsiKa 对于外循环,是的。对于内循环(它在哪里),没有。我应该在我的第一个评论中说“内部”循环。
  • 你好。请不要将文本/代码发布为图像/链接 (more info)。使用edit 选项更正您的帖子。

标签: java loops while-loop do-while


【解决方案1】:

您需要检查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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 输入一个数字:20 1 再试一次?是/否 是 2 2 再试一次?是/否 y 3 再试一次?是/否就这样做
    • 我的代码有问题,但我还在学习谢谢你的帮助朋友。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-08
    • 1970-01-01
    • 2021-03-12
    相关资源
    最近更新 更多