while循环条件满足进不去

package han;

public class 输出一百以内的素数 {

public static void main(String[] args) {
    // TODO Auto-generated method stub
    int cnt = 0;
    int x = 2;
    while(cnt<51);
    {
        boolean isprime = true;
        int i = 2;
        for(;i<x;i++)
        {
            if(x % i == 0)
            {
                isprime = false;
                break;
            }
        }
        if(isprime)
        {
            System.out.println(x);
            cnt++;
            if(cnt % 5 == 0)
            {
                System.out.println("\t");
            }
        }
        x++;
    }
}

}

while后面多了一个分号,后面的{}不是while的循环主体。

for(;i<x;i++) i怎么就小于2了!

是while语句后面多了个分号,导致while语句死循,根本不会执行下面的内容。还有输出100以内的质数条件是 x<100而不是cnt<51。

while(x < 100)

后面不要加分号

把while语句后面多了个分号去掉就可以了