gpt4 book ai didi

java - 使用嵌套 for 循环打印每行中一定数量的元素

转载 作者:行者123 更新时间:2023-12-01 22:35:50 25 4
gpt4 key购买 nike

我想创建一个产生以下结果的循环:

5 
4 3
2 1 0

这是我尝试过的:

    int sn, counter1,counter3,x;
int counter2 = 0;
int y = 1;
Scanner scn = new Scanner(System.in);

for(counter1 = 5; counter2 <= counter1; counter1--){
for(x = 5; x > y; y++){
System.out.print(counter1);
}
}

我是编程新手,还没有遇到过这种情况。

最佳答案

对于新程序员来说这不是一个小问题。我认为最好的方法是尝试让你的程序反射(reflect)如果你必须用你的母语描述如何做的话你会做什么。

第一件事是你有三行。因此,我们将它们称为“第 0 行”、“第 1 行”和“第 2 行”。 (大多数程序员倾向于从 0 开始,而不是 1。但是,如果您愿意,可以通过进行一些调整,从 1 开始。)因此,您将得到一个像这样的循环:

for (int line = 0; line < 3; line++)  {
// something
}

这将循环 line=0 , line=1 , line=2 。它不会这样做 line=3 ,因为3<3是假的。

现在,对于每一行,您将打印一定数量的数字(或列):1 表示第 0 行,2 表示第 1 行,等等,这意味着您将显示的数字数量是行号加一。所以你会得到一个看起来像这样的循环

for (int column = 0; column < line + 1; column++) {
// something
}

打印完该行中的所有数字后,您需要告诉程序转到下一行。

for (int line = 0; line < 3; line++)  {
for (int column = 0; column < line + 1; column++) {
// something
}
System.out.println(); // go to the next line
}

所以现在您所要做的就是打印数字。请注意,第一个数字是 5,并且每次打印时它都会不断减少。因此,首先将计数器设置为 5。您不希望每行或每列都将其重置为 5,因此这属于循环之外。然后,对于每一列,打印计数器并将其减 1。

int counter = 5;
for (int line = 0; line < 3; line++) {
for (int column = 0; column < line + 1; column++) {
System.out.print(counter); // print the current counter
System.out.print(" "); // print a space between each number
counter--; // decrease the counter by 1
}
System.out.println(); // go to the next line
}

这应该做你想要的,最重要的是,它也反射(reflect)了你如何思考自己完成这个任务,所以它应该很容易理解。这是优秀程序的一个重要品质,几乎与它正确运行一样重要。

编辑:我的主要目的是演示如何看待问题,思考如何手动解决它,并在程序中表达这些想法。如果您从任意数字(而不是 5)开始,并且目的是显示小至 0 的数字,您将不会事先知道将显示多少行(您需要使用二次公式来计算)。因此必须进行一些调整:外循环将继续执行,直到计数器达到 0,而不是显示设定的行数。并且您必须弄清楚如果计数器在中间达到 0 该怎么办一条线。但基本技术几乎是相同的。

关于java - 使用嵌套 for 循环打印每行中一定数量的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26892229/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com