2013-10-26 30 views
-5
int max = 100; 
    String result=""; 

    // loop through the numbers one by one 
    for (int i = 1; i<max; i++) { 
     boolean isPrimeNumber = true; 

     // check to see if the number is prime 
     for (int j = 2; j < i; j++) { 
      if (i % j == 0) { 
       isPrimeNumber = false; 
       break; // exit the inner for loop 
      } 
     } 
     // print the number if prime 
     if (isPrimeNumber) { 
      result=result+i+",";//used to holding the value for i 
     } 
     lblDisplay.setText(""+result);//used to holding the value for i 
    } 
}      

首先我将i的值初始化为1,系统检查1是否小于100 ...它会继续...... 后面的j值初始值为2,if j值小于i,系统会循环...但是2大于1 ...为什么系统仍然可以生成结果?谁能告诉我为什么?任何人都知道如何解释这段代码? (打印质数)

+0

一行一行,你不明白什么? –

+0

您需要花几个小时阅读一些(或几本)关于Java编程的优秀入门书籍。然后,尝试在您的计算机上,并使用一些调试程序逐步在代码中(或至少添加一些打印语句)。 –

+0

你想打印这个素数? –

回答

0

由于1是一个特殊的号码,根据素数也没有涉及,所以你必须单独写条件1外环内:

if(i == 1) 
     isPrimeNumber = false; 

而且从
for (int j = 2; j < i; j++)
改变内环

for (int j = 2; j <= i/2 ; j++)

相关问题