我该怎么做才能使其不再在Java中给我两个输出?

时间:2018-12-12 00:08:48

标签: java if-statement

我检查了一下,但看不到为什么输入带有两个辅音的单词会产生两个输出。 这是我的代码:

import java.util.Scanner;
public class piglatinJethroB {
    public static void main(String[]args) {
        Scanner input = new Scanner(System.in);
        System.out.println("Welcome to the Pig Latin Translator!");
        System.out.println("Type in a word and I will translate it into pig latin");
        String word = input.next();
        String tolowercase = word.toLowerCase();
        char s = tolowercase.charAt(0);
        char n = tolowercase.charAt(1);
        String sub1 = tolowercase.substring(1);
        String sub2 = tolowercase.substring(2);
        String newword;
        char a = 'a';
        char e = 'e';
        char i = 'i';
        char o = 'o';
        char u = 'u';
        if (s == a || s == e || s == i || s == o || s == u ) {
            newword = tolowercase + "hay";
            System.out.println(newword);
            return;
        } else if (s != a && s != e && s != i && s != o && s != u) {
            newword = sub1 + s + "ay";
            System.out.println(newword);

            if (n != a && n != e && n != i && n != o && n != u) {
                newword = sub2 + s + n + "ay";
                System.out.println(newword);
            }
        }               
    }
}

该如何解决?

1 个答案:

答案 0 :(得分:0)

请注意此处

else if (s != a && s != e && s != i && s != o && s != u) {
        newword = sub1 + s + "ay";
        System.out.println(newword);

        if (n != a && n != e && n != i && n != o && n != u) {
            newword = sub2 + s + n + "ay";
            System.out.println(newword);
        }
    }

如果's'是辅音,则'else if语句'为true。如果'n'是辅音,则else if语句中的'if语句'也成立。 这就是为什么您要获得两个输出的原因。