内部的While循环变量j在递增后保持为3,而在下一次迭代中应该为1.因此,内部While条件失败并被终止,输出仅为2,而不是2、3、5.

public static void main(String[] args) {

    int i=2;
    int j=1;
    int count=0;

    while(i<=5)
    {
        while(j<=i)
        {
            if(i%j==0)
            {
                count++;        
            }
            
            j++;
        }

        if(count==2)
            System.out.println(i);    
        
        i++;
    }

推荐答案

每次执行外部循环时,都需要重置内部循环变量jcount:

public static void main(String[] args) {

    int i = 2;

    while (i <= 5) {
        int j = 1;
        int count = 0;

        while (j <= i) {
            if (i % j == 0) {
                count++;
            }
            j++;
        }

        if (count == 2) {
            System.out.println(i);
        }
        i++;
    }
}

Java相关问答推荐

无法运行Java(已解决)

try Dockerize Maven应用程序,但发布版本21不支持"

Java 22模式匹配不适用于记录模式匹配.给出汇编问题

流迭代列表<;对象>;上的NoSuchElementException

确定Java中Math.Ranb()输出的上限

RichFaces 3.x-Spring Boot-迁移web.xml

在Java Swing Paint应用程序中捕获快速鼠标移动时遇到困难

基于调车场算法的科学计算器

测试期间未执行开放重写方法

与不同顺序的组进行匹配,不重复组但分开

虚拟线程应该很快消亡吗?

如何在不删除Java中已有内容的情况下覆盖文件内容?

AbstractList保证溢出到其他方法

如何在EL处理器中定义带有命名空间的变量?

在Oracle db中,当我们提供字符串而不是数字时,比较是如何工作的?

使IntelliJ在导入时优先 Select 一个类或将另一个标记为错误

Android无法在Java代码中调用Kotlin代码,原因是在Companion中使用Kotlin枚举时

TinyDB问题,无法解析符号';上下文&

JavaFX中ListView中的问题

语句打印在错误的行(Java Token 问题)