使用Java,
我正在尝试使用嵌套for循环来创建一个打印出654321到1的图表,
实施例,
654321
54321
4321
321
21
1
以下代码打印出足够接近的示例,但不是从前面减少,而是从后面减少
654321
65432
6543
654
65
6
这有点像我想要的那样做不完全,你怎么能从头开始算倒数?
public class test_for_loops{
public static void main (String [] args){
int lines = 6;
for (int i = 1; i <= lines; i++){
for (int j = lines; j >= i; j--){
System.out.print (j + " ");
}
System.out.println();
}
}
}
答案 0 :(得分:0)
1。)只需从i
开始0
并设置j=lines-i
2。)遍历j
直到1
int lines = 6;
for (int i = 0; i < lines; i++){
for (int j = lines-i; j >= 1; j--){
System.out.print (j + " ");
}
System.out.println();
}
输出:
6 5 4 3 2 1
5 4 3 2 1
4 3 2 1
3 2 1
2 1
1
工作
i = 0
j (6 - 0 => 6) 6 , 5 , 4 , 3 , 2 , 1
i = 1
j (6 - 1 => 5) 5 , 4 , 3 , 2 , 1
i = 2
j (6 - 2 => 4) 4 , 3 , 2 , 1
.
.
i = 5
j (6 - 5 => 1) 1
答案 1 :(得分:0)
您不会减少行数,因此在内循环开始时j始终设置为6。试试这个:
public static void main (String [] args){
int lines = 6;
int jcounter = lines;
for (int i = 1; i <= lines; i++){
for (int j = jcounter ; j >= 1; j--){
System.out.print (j + " ");
}
jcounter--;
System.out.println();
}
} }
答案 2 :(得分:0)
试试这个:
int lines = 6;
for (int i = 1; i <= lines; i++){
for (int j = lines - i + 1; j >= 1; j--){
System.out.print (j + " ");
}
System.out.println();
}
输出:
6 5 4 3 2 1
5 4 3 2 1
4 3 2 1
3 2 1
2 1
1
答案 3 :(得分:0)
int n = 6;
for (int i = n; i > 0; i--) {
for (int j = i; j > 0; j--) {
System.out.print(j);
}
System.out.println();
}
说明:使用外部循环来控制每行的长度(最大数量)。使用内部循环使用该长度打印每行的元素。我希望它清楚
答案 4 :(得分:0)
我刚刚改变了for循环的顺序
public class test_for_loops{
public static void main (String [] args){
int lines = 6;
for (int cLine = lines; i > 0 ; i--){
for (int j = cLine; j > 0; j--){
System.out.print(j + " ");
}
System.out.println();
}
}
}
答案 5 :(得分:0)
你太近了,我们只需要在两个地方进行更改,即
1。)外循环使i = 0并让它一直运行直到&lt;线强>
2.)内环使 j = lines-i 让它一直运行到&gt; 0
public class test_for_loops{
public static void main (String [] args){
int lines = 6;
for (int i = 0; i < lines; i++){
for (int j = lines-i; j > 0; j--){
System.out.print (j + " ");
}
System.out.println();
}
}
}
答案 6 :(得分:0)
我不确定为什么要在for循环中执行此操作,但我能想到的最佳方法是创建一个整数数组,然后通过索引打印出数组中的值。通过循环的每次迭代,我们开始打印出比较少1位的数组部分(即我们从打印数组中的所有6位数开始(6-0 = 6),然后我们打印前5位数字数组(6-1 = 5),然后是前4(6-2 = 4),依此类推。)...唯一的问题是当你到达打印位置时。循环永远不会达到零,因为它会在您达到零时跳出,或者如果不这样,则会出现数组超出范围的异常。所以我能提出的最佳解决方案如下:我必须打印出最后一位数字:
public class test_for_loops{
public static void main (String [] args){\
int lines = 6;
int digits[] = {1,2,3,4,5,6};
for (int i = 1; i < lines; i++){
for (int j = lines; j >= i; j--){
System.out.print (digits[j-i]);
}
System.out.println("\n");
}
System.out.println(1);
}
这将产生以下输出:
654321
54321
4321
321
21
1