首页 > 解决方案 > 在Java中查找区间之间的偶数但排除随机数的倍数

问题描述

我最近开始学习 Java,并且有几个练习要练习。一直在努力解决这个问题:我必须获得 2 个随机数,A 和 B,并且必须打印 1 和 B 之间的所有偶数。我设法完成了这部分,但接下来的问题是:如果找到2A ,程序必须中断并显示以下消息:“找到 2A 的倍数”。我所能做的就是打印 1 和 B 之间的每个偶数,并排除 2 A 的每个倍数,如下所示:

import java.util.Random;

public class JavaExercise {

    public static void main(String[] args) {
        Random random = new Random();
        int A = random.nextInt(9) + 1;
        int B = random.nextInt(99) + 1;
        
        for (int i = 1; i <= B; ++i) {
             if ((i % 2 == 0) && (i % (2*A) != 0)) 
                 System.out.println (i);
             else
                 break;
                
        }

    }

}

但是我需要程序在找到 2*A 的倍数时中断,并显示上面的消息。尝试这样做,但得到了一个非常糟糕的输出,显示消息多次而不是一次,:

        for (int i = 1; i <= B; ++i) {
            if (i % 2 == 0)
                 System.out.println (i);
                if (i % (2*A) == 0)
                    break;
                    System.out.println("Multiple of 2A found");
                
        }

有人能帮我找出我哪里出错了吗?我会很感激的!

标签: javalogic

解决方案


您的行顺序错误。

        for (int i = 2; i <= B; i+=2) {
             if( i % (2*A) == 0 )
             {
                 System.out.println( "Multiple of 2A found." );
                 break;
             }
             System.out.println (i);                
        }

推荐阅读