Java while循环问题

时间:2012-11-15 21:26:53

标签: java while-loop

我有一个没有执行的while循环。我不相信存在无限循环或启动问题,但有吗?我找不到我的逻辑错误!

public class Test
{
    public static void main (String [] args)
    {
        int i = 1;
        int j = 1;
        while  ((i < 10) && (j*j != 25));
        { 
           i++;  
           ++j;
           System.out.println( i * j );
        }   
    }
}

1 个答案:

答案 0 :(得分:15)

在while循环后删除分号

public static void main (String [] args)
{
     int i = 1;
     int j = 1;
     while  ((i < 10) && (j*j != 25)) //Semicolon removed from here
     { 
        i++;  
        ++j;
        System.out.println( i * j );
     }   
}

如果没有用括号括起来,那么在循环声明之后直接出现的任何语句都被认为是整个块。

if( true ) 
    System.out.println( "hello" );
    System.out.println( "world" );

被视为

if( true ) {
     System.out.println( "hello" );
}
System.out.println( "world" );

单个分号被视为empty statement,因此构成了整个循环体。