Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
什么';我的while循环程序有什么问题?(java)it';它应该在达到-6000时结束_Java_While Loop - Fatal编程技术网

什么';我的while循环程序有什么问题?(java)it';它应该在达到-6000时结束

什么';我的while循环程序有什么问题?(java)it';它应该在达到-6000时结束,java,while-loop,Java,While Loop,我编写了这个小程序来学习while循环。我希望它做的是减少X并打印它,直到它达到-6000,然后终止程序,但显然我的代码有问题,这里是: public static void main(String[] args) { int x = 3; int y = 20; int z = -6000; while(x != y){ System.out.println(x); {x++;} while(x != y){

我编写了这个小程序来学习while循环。我希望它做的是减少X并打印它,直到它达到-6000,然后终止程序,但显然我的代码有问题,这里是:

public static void main(String[] args) {
    int x = 3;
    int y = 20;
    int z = -6000;

    while(x != y){
        System.out.println(x);
        {x++;}

        while(x != y){
            x--;
            System.out.println(x);
        }
        while(x == z){
            System.exit(0);
            System.out.print("counted to 6000");
        }

        }
    }

}

检查你的括号你的第二个while循环应该包含最后一个while循环,如果你想要你的System.out.print(“计数到6000”);语句来执行在调用System.exit(0)之前需要放置的任何操作

检查括号,第二个while循环应包含最后一个while循环,如果需要System.out.print(“计数到6000”);语句来执行在调用System.exit(0)之前需要放置的任何操作

对于您描述的问题,我看不到内部while循环的优点。为什么不干脆做:

int x = 3;
int z = -6000;

while(x > z){
    System.out.println(x);
    x--;
    }
System.out.print("Counted to 6000");
System.exit(0);

对于您描述的问题,我看不到内部while循环的优点。为什么不干脆做:

int x = 3;
int z = -6000;

while(x > z){
    System.out.println(x);
    x--;
    }
System.out.print("Counted to 6000");
System.exit(0);
我想要它做的是减少X并打印它,直到它达到-6000,然后终止程序

如果您只想这样做,则只需1
循环:

public static void main(String[] args) {
    int x = 3;
    int z = -6000;

    while(x != z){
        x--;
        System.out.println(x);
    }
    System.out.print("counted to -6000");
}
我想要它做的是减少X并打印它,直到它达到-6000,然后终止程序

如果您只想这样做,则只需1
循环:

public static void main(String[] args) {
    int x = 3;
    int z = -6000;

    while(x != z){
        x--;
        System.out.println(x);
    }
    System.out.print("counted to -6000");
}

下面是我们逐步完成代码时发生的情况: 在输入第一个while之前:x=3,y=20,z=-6000

  • 输入第一个while循环,从x增加到x=4

  • 输入secondwhileloop,这将无限循环,因为x永远不会等于y。x从4开始,随着每个循环递减


既然你问代码出了什么问题,我就在这里完成回答。了解如何更改代码以获得您期望的行为,这将是一次宝贵的学习经验。

以下是我们逐步了解代码时发生的情况: 在输入第一个while之前:x=3,y=20,z=-6000

  • 输入第一个while循环,从x增加到x=4

  • 输入secondwhileloop,这将无限循环,因为x永远不会等于y。x从4开始,随着每个循环递减


既然你问代码出了什么问题,我就在这里完成回答。了解如何更改代码以获得预期的行为,这将是一次宝贵的学习经验。

问题在于
y!=z
。当退出第二个
while
循环时,由于循环条件,
x
将变为与
y
相同的值。
while(x!=y){
可能应该是
while(x!=z){
还有一个问题是
x
的初始化时间过长,无法通过重复
x-;
使
x
成为与
y
相同的值。问题是
y!=z
。当退出第二个
循环时,
x
将成为与
y
相同的值循环条件的se。
while(x!=y){
可能应该是
while(x!=z){
还有一个问题是
x
用于初始化,这将花费太长时间,无法通过重复
x-;
而变成与
y
相同的值。