我想要的输出:10 20 30 40 50 .............. 我得到的输出:0
public class HelloWorld
{
public static void main(String[] args)
{
final int n = 50;
int i= 0;
while(i <= n && i % 10 == 0 )
{
System.out.println(i);
i++;
}
}
}
答案 0 :(得分:3)
while(i <= n && i % 10 == 0 )
这是继续条件,它是由逻辑 - 和&&
连接的两个表达式。
这意味着两者必须为真,才能使整个事情成真。
现在计算i
成为1
时的两个子表达式。第一个是真的,但不是第二个(1
不是10
的倍数),这意味着循环将在该点退出。这就解释了为什么你只看到0
。
要修复它,您需要将两个子表达式分开,因为循环控制仅依赖于 。但是,您仍然只希望打印以10的倍数(第二个)发生。
因此,假设根据您所需的输出10 20 30 40 50
,您不希望0
作为输出之一(尽管它毕竟是...的倍数10),以下伪代码将起作用:
set n to 50, i to 1
while i is less than or equal to n:
if the remainder when i is divided by 10 is 0:
output i
increment i
如果 想要0
包含在输出中,只需先将i
设置为0
,然后您就会看到0 10 20 30 40 50
。
我将上面的代码留作伪代码,假设这是一些描述的类作品 - 将它转换成任何过程语言应该相对容易。
答案 1 :(得分:1)
i % 10 == 0
这将在第二个循环中评估为false,因此while不会继续。我想你想要这个...
final int n = 50;
int i= 0;
while(i <= n)
{
if (i % 10 == 0) {
System.out.println(i);
}
i++;
}
这允许我一直增加到n,但它只会在i % 10 == 0
答案 2 :(得分:1)
您正在尝试使用View
以及while
和while
。试试
if
答案 3 :(得分:0)
仅在i = 0时循环运行一次。就是这样。