使用单个while循环与while和if组合

时间:2017-02-20 21:06:29

标签: java loops

我创建了一个while循环,它接受用户值b并检查两个条件。虽然我的代码是正确的,但我最初尝试使用单个while循环组合这两个条件,但它不起作用。我的增量器i ++要么计数一次,要么永远循环,这取决于我把它放在哪里。

有没有办法可以使用结合条件的while语句来实现?

不起作用

        //Declare variables
        int i = 0 ;         //Counter Variable.
        int positive = 0 ;  //Holds the result of our positive sum.

        while ( ( i < b ) && ( i % 10 == 0 ) )  //While i is less than the users number.

            {

                positive = i ;
                System.out.println ( positive ) ;
                i++ ;   //Incrementer

            }

此作品

        //Declare variables
        int i = 0 ;         //Counter Variable.
        int positive = 0 ;  //Holds the result of our positive sum.

        while ( i < b ) //While i is less than the users number.

            {

                if ( i % 10 == 0 )

                    {

                        positive = i ;
                        System.out.println ( positive ) ;

                    }

                i++ ;
            }

2 个答案:

答案 0 :(得分:1)

while ( ( i < b ) && ( i % 10 == 0 ) ) 

循环只运行一次,因为一旦i的值由于增量

而从0变为1
( i % 10 == 0 ) will fail.

而在

 while ( i < b )

代码检查我是否小于b和

  

if(i%10 == 0)

作为单独条件处理。

答案 1 :(得分:0)

这两个代码块不是等价的,你不能真正使它们等效。在您的第一个代码块中,您的注释会考虑第一个条件,但不考虑第二个条件。你有两个条件。这两个必须才能使循环继续。只要其中一个条件为假,循环就会停止。因此,只要i % 10 == 0返回false,循环就会结束。

但是,您也可以通过在每个循环中将i递增10来解决此问题。所以你可以有类似的东西,它会产生相同的输出:

int i = 0 ;
int positive = 0 ;
while (i < b){
    positive = i;
    System.out.println ( positive ) ;
    i += 10;
}