java—如何使用(int i=10;i>=5++(一){

bkkx9g8r  于 2021-07-06  发布在  Java
关注(0)|答案(2)|浏览(343)

**结束。**此问题不符合堆栈溢出准则。它目前不接受答案。
**想改进这个问题吗?**更新问题,使其成为堆栈溢出的主题。

上个月关门了。
改进这个问题
对于一个学校项目,我应该产生这个输出

10
1020
102030
10203040
1020304050

我现在的代码是:

public static void main(String[] args) {
        int rows = 5;

        for(int i = 10; I <= 5; ++i) {
            for(int j = 1; j <= i; ++j) {
                System.out.print((i * j) + " ");
            }
            System.out.println();
        }
    }

但这句话什么也没用:

for(int i = 10; I <= 5; ++i) {

就这样一直持续下去

for(int i = 10; I >= 5; ++i) {

with this output:

10
1011
101112

and so on forever.

我完全糊涂了

vuktfyat

vuktfyat1#

for循环有三个部分,用分号分隔:
初始化-它在循环的开始处运行,在其他任何操作之前
退出条件-在循环的每次迭代之前检查。如果是的话 false ,则循环中断。
增量-此操作发生在每次迭代结束时。通常,我们使用它来更改退出条件中使用的变量。
检查回路 for(int i = 10; i <= 5; ++i) 你提出的问题,我们可以看到:
初始化失败 int i = 10 ,创建整数 i 并给它赋值 10 .
退出条件为 i <= 5 . 一旦退出条件为false,循环将立即终止。
增量为 ++i ,在功能上与 i = i + 1 . 换句话说,我们正在增加 i 一个。
我们可以看到,退出条件将立即失败(10大于5),因此将跳过循环。
你的另一个例子,退出条件是 i >= 5 ,将无限期地重复,因为10大于5,并且随着你的增加,这将继续是真的 10 .
据我所知,解决你问题的办法是:

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

在这里,我们使用 i 数一数每一行。对于每一行,我们做一个变量 j 数一数那一行要打印的东西的数目(一件东西在第一行,两件东西在第二行,等等)。
因为我们需要打印的是十的倍数,所以我们需要 System.out.print(10 * j) . 这个指纹 10 在第一行, 10 那么 20 在第二条线上等。

vsmadaxz

vsmadaxz2#

假设大写输入错误(java是区分大小写的),循环从值10开始,必须以值5结束,因此,它永远不会做任何事情。
这是第一个问题,同样,循环内的行为也不正常,而且似乎您不太清楚正在做什么。
想想你已经显示了:从1到5的值,第一行只输出一个值,第二行输出2个值。。。等等。
因此,您需要为每个“行”循环,也就是说,您的第一个循环必须是从1到5:

for(int i = 1; i <= rows; ++i) {
}

然后,对于要作为值输出的每一行。然后是另一个循环。对于1到“行”号。知道行被变量引用 i 然后:

for(int j = 1; j <= i; ++j) {
}

还有,控制台里有什么节目?每行的值*10。每个值都存储在 j 变量。

System.out.print(j*10);

总之:

int rows = 5;
for(int i = 1; i <= rows; ++i) {
    for(int j = 1; j <= i; ++j) {
        System.out.print(j*10);
    }
    System.out.println();
}

我希望你能理解循环是如何工作的,以及如何在java中实现。
我认为最重要的是了解在循环的每个迭代中发生了什么。你可以写 System.out.print("i = "+i+" ; j = "+j); 检查每个迭代中的值或使用调试器。

相关问题