嗨,这是我要解决的一个简单的Java问题,我对循环语句中j--
和--j
的用法感到困惑。
这就是我的想法
第一季度。
我一岁的时候
j是4且大于1,而j减去1。
因此它打印出*,并且j变成3了吗?
第二季度。
然后对于k的第二个语句,
k是3的j,并且k大于1,
所以它打印-,并且k变成2吗?
第三季度。
现在用这两个语句完成了,接下来我应该去哪里?
我应该在变量i上加一个吗?
public class Main {
public static void main(String[] args) {
int i = 1;
while (i <= 4) {
for (int j = 4; j > i; j--) {
System.out.print("*");
for (int k = j; k > i; k--) {
System.out.print("-");
}
}
System.out.println();
i++;
}
}
}
这是结果:
*---*--*-
*--*-
*-
我试图弄清楚为什么打印'-'的语句在返回j(j--)或加i(i ++)之前要连续3次
答案 0 :(得分:0)
Q1。当我为1时,j为4且大于1,而j减去1。 它会打印*,并且剂量j变为3?
否,j仍为4,因为电流循环尚未完成。
之后System.out.print("*");
for (int k = j; k > i; k--) {
System.out.print("-");
}
完成,j--,现在j是3。
Q2。那么对于k的第二个语句,k是j,它是3,而k是 大于1,则打印-,并且剂量k变为2?
k是j,它是4,并且k大于1,在打印-循环主体完成之后,所以k变成3。
Q3。现在完成了这两个语句,下一步我应该去哪里?我是不是该 向变量i加一?
是的,您应该添加i ++。或者while(i <= 4)会一直运行。
答案 1 :(得分:0)
在控件返回到包含语句j ++和k--的行之前,k和j的值不会更改,在这种情况下,这是for循环开始的行。 因此-将继续打印直到控件退出内循环。 退出内循环后,控制将继续以完成外循环。