当前位置: 首页 > 知识库问答 >
问题:

为什么在while循环之后什么都不打印?

黄英韶
2023-03-14

我正在写一份简单的银行申请书。在我的程序中,我使用了while循环。如果用户输入错误,它将再次提示用户输入。

现在的问题是我无法编写任何系统。出来循环后打印语句。它总是显示错误(比如:unreachable语句),最终该行不会被打印出来。

我该怎么解决这个问题?

[我之所以需要使用system.out.print,是因为我想打印用户输入的所有信息。]

我正在从事的项目:

 package bankapplication;

import java.util.Scanner;

public class BankApplication {

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

        System.out.println("WELCOME TO OUR BANK!\n\nPlease give all the inofrmation correctly.");

        System.out.println("Enter your name: ");
        String name = input.nextLine();
        System.out.println("");

        System.out.println("Enter your SSN: ");
        String ssn = input.next();
        System.out.println("");

        System.out.println("Enter your Address: ");
        String address = input.next();
        System.out.println("");

        System.out.println("Enter your telephone nr: ");
        String teleNum = input.next();
        System.out.println("");

        while (true) {
            System.out.println("Choose an account number for you (Between 5 and 10 positive numbers): ");
            int accNum = input.nextInt();
            System.out.println("");
            if (accNum < 0 && accNum > 10 && accNum < 6) {
                System.out.println("Invalid choise!");
            } else {
                System.exit(0);

            }
        }

        System.out.println("Congratulation! Your new account has been created!");
        System.out.println("The following is your account info:\n");
        System.out.println("name: " + name + "SSN: " + ssn + "Address: " + address + "Tele. Num: " + teleNum + "Acc num: " + accNum);

    }

}

共有3个答案

柏修洁
2023-03-14

情况

(accNum < 0 && accNum > 10 && accNum < 6)

永远无法实现,数字不可能是负的

当你调用System.exit(0)时,你是在退出程序,而不是循环,因此你永远不会达到你所谈论的语句。

你应该使用

break;

或者如果你想要更多的声望,把正确的条件放在同时(条件)...尽量不要习惯使用Rest;

杜阳泽
2023-03-14

你有一个while(true)循环,这个循环是无限的,除非循环中的某个东西从中断裂出来。你唯一能跳出循环的一行是System。退出(0),这将完全结束您的程序。因此,不可能在循环之后到达代码。

如果您想在其他子句中打破循环,请使用中断语句而不是退出程序。

但是请注意,您的if条件永远不会为真。

if (accNum < 0 && accNum > 10 && accNum < 6) {

accNum不能小于零且大于10。

你需要弄清楚你到底想检查什么情况。

时同
2023-03-14

当您调用System.exit时,整个程序退出,进程终止。相反,您可以用以下语句替换其他语句:

else { break; }

这将打破当前循环,其余的语句将被打印出来。关键字中断简单地打破了循环。

 类似资料:
  • 问题内容: 我了解此构造的工作原理: 但是我不明白为什么else在这里使用它作为关键字,因为它表明所讨论的代码仅在for块未完成时才运行,这与它的工作相反!无论我如何考虑,我的大脑都无法从for陈述到else障碍的无缝发展。对我来说,还是更有意义(我正在尝试训练自己这样阅读)。 我想知道Python编码人员是如何在头脑中读取这个结构的。也许我缺少使这些代码块更容易理解的东西? 问题答案: 即使是经

  • 所以我这里有一个程序,它只是简单地模仿跳棋(但不是跳,而是一个棋子简单地“吃掉”另一个棋子)。我有一个简单的类,它实现了一个“checkers”类对象,并创建了一个名为“chips”的int数组变量。还有一个“while”语句,它在chip[0]和chips[1]整数大于0时创建了一个循环。看起来是这样的: Checkers类中的count方法如下所示: 板是8 x 8(这就是board.leng

  • 问题内容: 我一直在使用“ if”来测试自己的版本,并且一切似乎都正常。当然,如果使用signalAll()而不是signal(),这将导致严重崩溃,但是如果一次仅通知一个线程,这怎么会出错? 他们的代码在这里 -检查put()和take()方法;在Condition的JavaDoc顶部可以看到一个更简单,更重点的实现。 下面是我实施的相关部分。 PS我知道,通常,尤其是在这样的lib类中,应该让

  • 我试图通过将ajax请求中的for循环的值发送到php文件来检查数据库中的值,“each value in request”,然后文件返回变量“avl”,如果不是,则不可用。 问题是,我检查了一个值流,它们都必须返回才能继续我的过程,但条件不会等到for循环结束才进行检查。它在for循环启动之前检查条件,即使代码也不是那样的。例如:在for循环在第50行结束之前,它在第100行执行条件。 它总是通

  • 问题内容: 以下示例在Node.js书中给出: 解释了while循环为何阻止执行时,作者说: 节点将永远不会执行超时回调,因为事件循环卡在了循环中,而循环在第7行开始了,因此永远不会给它处理超时事件的机会! 但是,作者没有解释为什么这是在事件循环的背景下发生的,还是在幕后真正发生了什么。 有人可以详细说明吗?为什么节点卡住?以及如何在保留控制结构的同时更改上述代码,以使事件循环不会被阻塞,并且代码

  • 我想我的程序跳过了while循环,但我真的不确定到底发生了什么。该函数应该通过找到GCD,然后将分子和分母除以该数字来减少分数。 我得到分子和分母的绝对值,以确保如果分数是负数,我会在最后保持它。如果分子为0,则要求我返回(0,1)。问题是关于while循环。。。似乎它被完全跳过了。有什么建议吗?