java新手,需要帮助

时间:2016-02-10 05:45:22

标签: java

我正在尝试制作无限循环猪拉丁语翻译器,直到用户输入“q”退出程序。我在完成while语句时遇到了问题。我得到的错误如下。

  

PigLatin.java:27:错误:找不到符号} while(word!=“q”);               ^符号:变量字位置:类PigLatin

这是我的源代码:

import java.util.Scanner;

public class PigLatin {
    public static void main(String[] args) {
        System.out.println("Welcome to the pig latin convertor.");
        do {
            Scanner in = new Scanner(System.in);
            String word, pig;
            char first;

            System.out.print("enter word or press 'q' to quit: ");
            word = in.next();
            word = word.toLowerCase();
            System.out.println(word);

            first = word.charAt(0);
            if (first == 'a' ||  first == 'e' || first == 'i' || 
                first == 'o' || first == 'u')  // vowel
                pig = word + "way";      
            else
                pig = word.substring(1) + word.charAt(0) + "ay";
            System.out.println("pig-latin version: " + pig);
        } while (word != "q");
    }
}

1 个答案:

答案 0 :(得分:1)

您的变量word已在错误的位置声明,即。在do..while循环中,而不是之前。这导致编译错误。

修复后,您仍有错误,因为String比较应使用equals()而不是!=(或==)。

尝试类似:

String word;
do {
    ...
} while (!word.equals("q"));

如果您不在乎他们是word.equalsIgnoreCase("q")还是"q",也可以使用"Q"