2

実行されていない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 );
        }   
    }
}
4

1 に答える 1

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 );
     }   
}

ループ宣言の直後にあるステートメントは、中括弧で囲まれていない場合、ブロック全体と見なされます。

IE

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

として扱われます

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

単一のセミコロンは空のステートメントと見なされるため、ループ本体全体を構成します。

于 2012-11-15T21:27:50.113 に答える