使用Java中的嵌套循环打印倒三角形?

时间:2017-11-07 05:59:12

标签: java loops for-loop nested-loops

我想要打印的三角形看起来像这样:

123456
23456
3456
456
56
6

到目前为止,我一直在打印:

123456
12345
1234
123
12
1

这里是我提出的代码:

System.out.println();
for (int i=1; i<=6; i++)
{
  for (int j=7; j>i; j--)
  {
    System.out.print(j - 1);
  }
  System.out.println("");
}

任何人都可以帮我弄清楚我做错了吗?

3 个答案:

答案 0 :(得分:2)

你非常接近。请注意,内循环的起始索引每次都需要更改。怎么样:

for (int i=1; i<=6; i++) {
    for (int j=i; j<=6; j++) {
        System.out.print(j);
    }
    System.out.println();
}

答案 1 :(得分:0)

你在内部for循环上的方向错误。

private static MyClient client = ServiceGenerator.generateService(MyClient.class);

private static ConnectableObservable<List<DataModel>> x;

public static void initObservable() {
    Observable<List<DataModel>> o = client.dataForUser("user");
    x = o.subscribeOn(Schedulers.io()).publish();
    x.connect();
}

public static ConnectableObservable<List<DataModel>> getObservable() {
    return x.replay(1);
} 

通过在内部for循环中将j设置为等于i,该行将自行向前移动一个。

输出:

ConnectableObservable<List<DataModel>> x = MyClientNetworkUtil.getObservable();
x.connect();
x.subscribe(response -> Log.d("Response", response.get(1).getName()), e -> Log.e("Response", e.toString()));   

答案 2 :(得分:-1)

public class MyClass {
public static void main(String args[]) {


for(int i=1;i<7;i++){
for(int j=i;j<7;j++)
    System.out.print(j);

System.out.println("");
}

}
}

编辑:让我们考虑每个循环迭代的作用。        外循环看到在前往下一行之前打印所有值。但是,如何打印所需的值?

这是由内循环完成的。它开始将值从当前迭代中的i值打印到值n(这里n = 6)。因此,在第一次迭代中,值将是123456.在第二次(&amp;在下一行)中,值从2开始打印,即23456,依此类推。这就是你所需的模式。