Java do while循环中的system.out.print()不工作

Java do while循环中的system.out.print()不工作,java,Java,system.out.print中的字符串(问题)表示填写数字。问题 必须继续,直到我填写0为止。现在的问题是do while循环中的system.out.print不工作 我的代码: package com.company; import java.util.Scanner; public class WhileLoopNumbers { public static void main(String[] args) { Scanner invoer = new Scanner(Sy

system.out.print中的字符串(问题)表示填写数字。问题 必须继续,直到我填写0为止。现在的问题是do while循环中的system.out.print不工作

我的代码:

package com.company;

import java.util.Scanner;

public class WhileLoopNumbers {
public static void main(String[] args) {
    Scanner invoer = new Scanner(System.in);

    final int STOP_TEKEN = 0;
    int nummer = invoer.nextInt();

    do {
        System.out.print("Geef een getal: ");
    }
    while (nummer == STOP_TEKEN);
}
}

尽量以可读的方式提供您的代码,以便我们能够给出有效的答案(英语)。当输入为0时,循环应该结束,但现在代码会要求您输入数字,直到您输入除零以外的任何数字

要更正代码,请将while表达式更改为!=0此外,您还需要在循环内而不是循环外向用户请求一个新号码

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner invoer = new Scanner(System.in);

        final int STOP_TEKEN = 0;
        int nummer = 0;
        do {
            System.out.print("Geef een getal: ");
            nummer = invoer.nextInt();
        }
        while (nummer != STOP_TEKEN);
    }
}

尝试在循环内的print语句之后为numer变量赋值。 像这样:

    int nummer;
    do {
       System.out.print("Geef een getal: ");
       nummer = invoer.nextInt();
    }while (nummer == STOP_TEKEN);

仔细学习!!!对于您的情况,可能会出现两种情况

首先,如果您的输入不是
0
,则
System.out.print()
将只运行一次。因为,正如它是
do while
一样,
do
中的语句将运行一次,之后的条件将不匹配,因为数字不等于
0
,循环将中断

其次,如果您的输入是
0
,它将导致无限循环,因为其中的条件始终满足

解决方案:

您需要在每次迭代中减小
numer
的值。另外,将您的条件更改为
=代替
==
。试着这样做:

public static void main(String[] args) {
    Scanner invoer = new Scanner(System.in);

    final int STOP_TEKEN = 0;

    int nummer = invoer.nextInt();

    do {
        System.out.print("Geef een getal: ");
        nummer--;
    }
    while (nummer != STOP_TEKEN);
}

您没有在循环内更改
numer
的值。要么循环体无限执行(如果输入零),要么执行一(如果输入其他内容)。输入什么?您希望发生什么以及为什么?根据您当前的代码,如果您首先输入0,则它将无限次打印给定的语句;如果您输入除0之外的任何其他整数,则它将打印给定的语句一次,因为您不要求在do块内输入。我是如何创建无限循环的?-也许您在我运行程序之前检查过:
public static void main(String[] args) {
    Scanner invoer = new Scanner(System.in);

    final int STOP_TEKEN = 0;

    int nummer = invoer.nextInt();

    do {
        System.out.print("Geef een getal: ");
        nummer--;
    }
    while (nummer != STOP_TEKEN);
}