为了账号安全,请及时绑定邮箱和手机立即绑定

do while 循环内的 system.out.print() 不起作用

do while 循环内的 system.out.print() 不起作用

DIEA 2023-10-19 21:18:19
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);}}
查看完整描述

4 回答

?
慕桂英546537

TA贡献1848条经验 获得超10个赞

尝试以可读的方式提供您的代码,以便我们能够给出有效的答案(英文)。当您的输入为 0 时,您的循环应该结束,但现在您的代码要求您输入数字,直到您输入除 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);

    }

}


查看完整回答
反对 回复 2023-10-19
?
大话西游666

TA贡献1817条经验 获得超14个赞

认真学习!!!对于您的情况,可能会出现两种情况。


首先,如果您的输入不是0,则System.out.print()只会运行一次。因为,实际上do-while,里面的语句do将运行一次,之后条件将不匹配,因为数字不等于0,并且循环将中断。


其次,如果你的输入是0,则会导致无限循环,因为 while 内部的条件始终满足。


解决方案:


您需要在每次迭代中减小 的值nummer。另外,将您的条件更改为而!=不是==。尝试这样:


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);

}


查看完整回答
反对 回复 2023-10-19
?
呼唤远方

TA贡献1856条经验 获得超11个赞

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


    int nummer;

    do {

       System.out.print("Geef een getal: ");

       nummer = invoer.nextInt();

    }while (nummer == STOP_TEKEN);


查看完整回答
反对 回复 2023-10-19
?
明月笑刀无情

TA贡献1828条经验 获得超4个赞

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: ");

        // Assign stdin value to some variable

        nummer = invoer.nextInt();

    } while (nummer != STOP_TEKEN);// check the stdin value with your exit condition

  }

}


查看完整回答
反对 回复 2023-10-19
  • 4 回答
  • 0 关注
  • 148 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信