我的代码以我不想要的方式重复

时间:2014-11-14 17:55:49

标签: java loops repeat

在我的代码结束时,用户选择重复。当它这样做时,它输出整个循环与原始工作而不是新输入的单词。例如,如果用户输入单词Pizza。它会像我想要的那样循环。当我选择重复它时,循环将再次使用单词Pizza而不是向我询问不同的单词。

do {
 if (answer == 1){
    System.out.println("Please enter another word:");
}
    for (int i = 0; i < word.length(); i++) {
    firstLetter = word.charAt(0);
    word = word.substring(1, word.length());
    System.out.println(firstLetter + word);
    word += firstLetter;

}
 System.out.println("Would you like to Enter another word? If so, press 1. If not press 2.");
answer = input.nextInt();
input.nextLine();
}
    while(answer == 1);
    System.out.println("Have a nice day!");
}
}

此代码的输出是: 比萨 izzap zzapi zapiz apizz 你想输入另一个词吗?如果是,请按1.如果不是,请按2。 当我按1时它将立即重复它而不要求我换个新词。我怎样才能得到理想的结果?

2 个答案:

答案 0 :(得分:2)

System.out.println("Would you like to Enter another word? If so, press 1. If not press 2.");
answer = input.nextInt();
input.nextLine();

我认为如果你拿出最后一行它会正常工作

更新

答案 1 :(得分:1)

也许这样的事情。您也缺少该单词的输入。您需要来自用户的单词和操作。

do {
    System.out.println("1 for new word, 2 for exit");
    answer = input.nextInt();
    input.nextLine();
    System.out.println("input word");
    String word = input.nextLine();

    if (answer == 1){   
        for (int i = 0; i < word.length(); i++) {
            firstLetter = word.charAt(0);
            word = word.substring(1, word.length());
            System.out.println(firstLetter + word);
            word += firstLetter;
        }
    }  
} while(answer == 1);
System.out.println("Have a nice day!");