我创建了一个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++ ;
}
答案 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;
}