For 循环模式从 654321,54321.. 到 1
For Loop pattern from 654321,54321.. to 1
使用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();
}
}
}
1.) 只需从 0
开始 i
并设置 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
你没有减少行数,所以在内循环开始时 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();
}
}
}
试试这个:
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
int n = 6;
for (int i = n; i > 0; i--) {
for (int j = i; j > 0; j--) {
System.out.print(j);
}
System.out.println();
}
说明:使用外循环来控制每行的长度(最大数量)。使用内部循环使用该长度打印每行的元素。我希望一切都清楚
我刚刚更改了 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();
}
}
}
你离得太近了,我们只需要在 2 个地方进行更改,即
1.) 外循环 使 i=0 并让它 运行 直到 < lines
2.) 内循环 使 j = lines-i 并让它 运行 直到 > 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();
}
}
}
我不太确定为什么要在 for-loop 中执行此操作,但我能想到的最佳方法是创建一个整数数组,然后打印出数组中的值按他们的指数。通过循环的每次迭代,我们开始打印出数组中少 1 个位置的部分(即我们首先打印数组中的所有 6 位数字 (6-0=6),然后我们打印前 5 位数字数组 (6-1=5),然后是前 4 个 (6-2=4) 等等。)...唯一的问题是当您到达打印位置时。循环永远不会达到零,因为当你达到零时它会跳出,否则你会得到一个 array-out-of-bounds 异常。所以我能想到的最佳解决方案如下 - 我必须打印出最后一位数字:
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
使用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();
}
}
}
1.) 只需从 0
开始 i
并设置 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
你没有减少行数,所以在内循环开始时 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();
}
} }
试试这个:
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
int n = 6;
for (int i = n; i > 0; i--) {
for (int j = i; j > 0; j--) {
System.out.print(j);
}
System.out.println();
}
说明:使用外循环来控制每行的长度(最大数量)。使用内部循环使用该长度打印每行的元素。我希望一切都清楚
我刚刚更改了 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();
}
}
}
你离得太近了,我们只需要在 2 个地方进行更改,即
1.) 外循环 使 i=0 并让它 运行 直到 < lines
2.) 内循环 使 j = lines-i 并让它 运行 直到 > 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();
}
}
}
我不太确定为什么要在 for-loop 中执行此操作,但我能想到的最佳方法是创建一个整数数组,然后打印出数组中的值按他们的指数。通过循环的每次迭代,我们开始打印出数组中少 1 个位置的部分(即我们首先打印数组中的所有 6 位数字 (6-0=6),然后我们打印前 5 位数字数组 (6-1=5),然后是前 4 个 (6-2=4) 等等。)...唯一的问题是当您到达打印位置时。循环永远不会达到零,因为当你达到零时它会跳出,否则你会得到一个 array-out-of-bounds 异常。所以我能想到的最佳解决方案如下 - 我必须打印出最后一位数字:
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