Java检查一个变量是否是A-G。如果不是,则显示错误消息并再次询问
我正在尝试编写一个程序来统计音乐的音阶。不幸的是,我遇到了一个问题。我需要一种方法来检查输入值是否是音阶上的音符之一。如果是,请将其转化为数字以备后续计算。如果不是,则显示错误并再次询问。我试图做到这一点,即使我给出有效的音符,它也会使我陷入无限循环。任何帮助? 我的代码:Java检查一个变量是否是A-G。如果不是,则显示错误消息并再次询问
package music; import java.util.Scanner; 
import javax.swing.JOptionPane; 
public class musicc { 
    public static void main(String[] args) throws Exception { 
     int noteid; 
     noteid = musicc.getNoteId(); 
    } 
    public static int getNoteId() { 
     String note = "0"; 
     int returnValue = 0; 
     note = (String)JOptionPane.showInputDialog(null,"What note do you want to start on?",JOptionPane.PLAIN_MESSAGE); 
     while (note != "A" && note != "B" && note != "C" && note != "D" && note != "E" && note != "F" && note != "G") { 
      JOptionPane.showMessageDialog(null, note + " is not a valid note! Try again.", "Invalid note!", JOptionPane.ERROR_MESSAGE); 
      note = (String)JOptionPane.showInputDialog(null,"What note do you want to start on?",JOptionPane.PLAIN_MESSAGE); 
     } 
     switch(note) { 
     case "A":return 1; 
     case "B":return 2; 
     case "C":return 3; 
     case "D":return 4; 
     case "E":return 5; 
     case "F":return 6; 
     case "G":return 7; 
     } 
     return 0;  
    } 
} 
回答:
note != "A"这不是比较字符串的正确道路。使用equals():
if (!"A".equals(node)... 这是因为==和!=比较引用,而不是对象的内容“。要按“内容”比较字符串,您需要使用equals()方法。
以上是 Java检查一个变量是否是A-G。如果不是,则显示错误消息并再次询问 的全部内容, 来源链接: utcz.com/qa/257798.html





