java - 尽管评估错误,但扫描仪表达式的 while 循环仍在继续

标签 java loops while-loop

对 java 很陌生,想知道为什么即使扫描仪的输入是“N”,这个 while 语句也不会结束,从而将表达式计算为 false。

import java.util.*;

public class addSongs {

    public static void main (String[]args){

        Scanner songAdd = new Scanner(System.in);
        Scanner addContinue = new Scanner(System.in);
        String ceaseAdd = new String();
        ceaseAdd = "Y";

        while(ceaseAdd != "N")
            System.out.println("Enter track title");
            String newSong = songAdd.nextLine();
            MP3_catalogue.title.add(newSong);
            System.out.println("Enter artist name");
            String newArtist = songAdd.nextLine();
            MP3_catalogue.artist.add(newArtist);
            System.out.println("Enter duration");
            String newDuration = songAdd.nextLine();
            MP3_catalogue.duration.add(newDuration);
            System.out.println("Would you like to add another song? Y/N");
            ceaseAdd = addContinue.nextLine().toUpperCase();
    }

}

最佳答案

除了已经指出的字符串检查之外。缺少 {}。正确缩进的代码如下所示:

while(ceaseAdd != "N")
    System.out.println("Enter track title");
String newSong = songAdd.nextLine();
MP3_catalogue.title.add(newSong);
System.out.println("Enter artist name");

如果没有 {},则 while 仅适用于第一行。应该是这样的:

while(!ceaseAdd.equals("N")){      
    System.out.println("Enter track title");
    String newSong = songAdd.nextLine();
    MP3_catalogue.title.add(newSong);
    System.out.println("Enter artist name");
    String newArtist = songAdd.nextLine();
    MP3_catalogue.artist.add(newArtist);
    System.out.println("Enter duration");
    String newDuration = songAdd.nextLine();
    MP3_catalogue.duration.add(newDuration);
    System.out.println("Would you like to add another song? Y/N");
    ceaseAdd = addContinue.nextLine().toUpperCase();
}

关于java - 尽管评估错误,但扫描仪表达式的 while 循环仍在继续,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20153124/

相关文章:

sql - 具有多个变量的 T-SQL SELECT

java - 如何使用 dynamodb sdk 将字符串附加到列表? ( java )

java - 使用 PreparedStatement 将 blob 设置为 null

java - 客户端渲染 JSON 与 GPB( Protocol Buffer )

php - 如何在 3 个不同的表中使用 while 循环来回显数据库的特定列

javascript - 内存游戏数组

java - 欺骗 postMethod (java 中的 apache)?

arrays - 如何迭代数组一定次数?

python - 如何在使用 while 循环时将值 append 到字典中的列表?

c - while 循环运行一次迭代,不管