我是初学者,我需要转换这个" for"循环进入"而#34;循环。
int s = 0;
int t = 1;
for (int i = 0; i < 5; i++) {
s = s + i;
for (int j = i; j > 0; j--) {
t = t + (j - 1);
}
s = s + t;
System.out.println("T is " + t);
}
System.out.println("S is " + s);
我尝试了这个并且它没有工作
int s = 0;
int t = 1;
int i = 0;
while (i < 5)
i++;
{
s = s + i;
int j = i;
while (j > 0)
j--;
{
t = t + (j - 1);
}
s = s + t;
System.out.println("T is " + t);
}
System.out.println("S is " + s);
输出为T = 0且S = 5 什么时候应该阅读
T is 1
T is 1
T is 2
T is 5
T is 11
S is 30
感谢
答案 0 :(得分:0)
int s = 0;
int t = 1;
int i = 0;
while (i < 5)
{
s = s + i;
int j = i;
while (j > 0)
{
t = t + (j-1);
j--;
}
i++;
s = s + t;
System.out.println("T is " + t);
}
System.out.println("S is " + s);
您应该仔细研究语法。否则你单次执行块。
早些时候你正在运行这个
while (i < 5)
i++;
基本上执行循环5次,循环结束后i
得到值5。
之后我们正在运行块,我们再次遇到while循环。
while (j > 0)
j--;
它再次执行5次。所以在这个循环结束后它将是j=0
。
所以最终得到t=0
和s=5
。就是这样。
答案 1 :(得分:0)
1.1.8
应位于循环括号内,而不是放在之前。与i++;
相同。
j
就目前而言,你有一个循环,其中唯一的语句是while (i < 5)
{
s = s + i;
int j = i;
while (j > 0)
{
t = t + (j-1);
j--; // j needs to be incremented here
}
s = s + t;
i++; // i needs to be incremented here
}
,然后代码的其余部分(它在自己的代码块(或本地范围)中)只执行一次。 / p>