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

Do-AND循环中的Switch语句不退出

洪英豪
2023-03-14

由于某种原因,在我输入“停止”后,代码不会退出。为什么?逐步调试表明,在我输入“stop”后,它的值完全由“s”、“t”、“o”、“p”组成,没有任何换行符,等等。然而,代码仍然无法退出。谁能告诉我为什么吗?

import java.util.Scanner;

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

    // asking username
    System.out.print("Username: ");
    String username = input.nextLine();

    String inpText;
    do {
        System.out.print(username + "$: ");
        inpText = input.nextLine();
        System.out.print("\n");
        // analyzing
        switch (inpText) {
        case "start":
            System.out.println("> Machine started!");
            break;
        case "stop":
            System.out.println("> Stopped!");
            break;
        default:
            System.out.println("> Command not recognized");
        }
    } while (inpText != "stop");

    System.out.println("Bye!..");
}
}

共有3个答案

储承
2023-03-14

更改当(inpText!="停止");到当(!(inpText.equals("停止")));

通学真
2023-03-14

您将指针而非字符串与以下代码进行比较:

while (inpText != "stop");

应该是这样的:

while (!"stop".equals(inpText));
芮叶秋
2023-03-14
  • 要比较字符串,请使用。等于()而不是=,除非你真的知道自己在做什么
inpText != "stop" //Not recommended
!"stop".equals(inpText) //recommended
  • 除非使用jdk 1.7,否则不能在交换机中使用String。

无法为低于1.7的源级别打开字符串类型的值。只允许使用可转换的int值或枚举变量

 类似资料:
  • 所以程序应该是:-获取用户的输入,直到用户键入“n或N”以显示停止的标志-当用户键入“n或N”时,程序正数和负数和。 还有我得到的 这个错误信息,我不知道是什么问题。提前谢谢你!

  • do/while 循环是 while 循环的变体。该循环会执行一次代码块,在检查条件是否为真之前,然后如果条件为真的话,就会重复这个循环。 语法结构如下 do { statement } while (expression) do { 需要执行的代码 } while (条件);  demo var aNumbers = new Array(); var sMessage = "你输入了

  • 问题内容: 我有一个作业来实现一个简单的测试应用程序,下面是我当前的代码: 我现在想做的是,当按下时,这意味着用户想要退出测试,然后我中断了并打印,但是那样行不通,我知道原因可能是中断了,我怎样才能让它打破呢? 问题答案: 你可以while循环,并在,这应该是这样的: 而且可以是你想要的任何字,例如。

  • do-while 循环语句是 C 语言中最常用的三种循、环语句之一。但也是最容易与前面的 while 循环混淆的循环语句。 1. do-While 循环的语法 do { // 循环执行的语句 }while( 循环条件 ) 2. do-While 循环的执行过程 3. do-while 循环的使用场景 当需要先执行一次循环体内部的语句,然后再进行是否再次执行循环语句的时候使用。这有点像你吃

  • do loop用于执行一定次数的语句。 需要执行语句的次数由传递给do循环的值确定。 语法 (Syntax) do循环语句的语法如下 - do count statement #1 statement #2 ... End Statement#1 and Statement#2是一系列在do循环中执行的语句。 count变量表示do循环需要执行的次数。 流程图 (Fl

  • 当布尔条件为True或者条件变为True时,它会重复封闭的语句块。 它可以随时使用Exit Do语句终止。 此循环结构的语法是 - Do { While | Until } condition [ statements ] [ Continue Do ] [ statements ] [ Exit Do ] [ statements ] Loop -or- Do