所以,我想要做的是让我的while循环根据不同的关键词做不同的事情。我想要的是,当我输入yes时,我希望它退出程序,当我输入no时,它会打印一首新歌,并且如果出现拼写错误,会弹出消息并允许用户重新输入是或否来打印同一首歌曲。根据这三个命令,我要打印4或5首歌曲。在我最后的while循环中。我希望它在每次用户类型继续时重复播放歌曲,并在用户键入yes时结束。我希望在出现拼写错误时提示用户再次输入相同的内容。这工作之前,现在它没有。当我拼写错误时,它会提示我再次输入,但不会打印出该循环中的歌曲。它会将我发送给最后一个while循环,忽略它们之间的所有代码。最后一个循环只会识别拼写错误,是的,不会继续,即使它以前做过。为什么我的while循环无法正常工作并忽略代码?
这里是一个首歌循环和我最后的循环:
import java.io.*;
import java.util.*;
public class FullNurseryRhymes
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
String aBCs, neverEnds, frogs, frogs2, monkeys, hdd, hdd2;
NurseryRhymes rhymes = new NurseryRhymes();
{
System.out.println("Is the baby asleep? yes\\no");
frogs=input.next();
int byeFrog = 2;
for(int i = 3; i >= 1; i--)
{
if (frogs.equalsIgnoreCase("no"))
{
System.out.print(i + " " + rhymes.getFrogs());
System.out.println(" " + byeFrog + " " + rhymes.getFrogs2());
byeFrog -= 1;
}
else if (frogs.equalsIgnoreCase("yes"))
{
System.out.println("The baby is asleep");
System.exit(0);
}
while(!frogs.equalsIgnoreCase("no"))
{
System.out.println("Non requested input, please retry.");
System.out.println("\nIs the baby asleep? continue\\yes");
frogs = input.next();
if(frogs.equalsIgnoreCase("no"))
{
System.out.print(i + " " + rhymes.getFrogs());
System.out.println(" " + byeFrog + " " + rhymes.getFrogs2());
byeFrog -= 1;
}
else if (frogs.equalsIgnoreCase("yes"))
{
System.out.println("The baby is asleep");
System.exit(0);
}
}
}
}
//last loop
{
System.out.println("Is the baby asleep? continue\\yes");
neverEnds = input.next();
while(neverEnds.equalsIgnoreCase("continue"))
{
System.out.println(rhymes.getNeverEnds());
System.out.println("Is the baby asleep? continue\\yes");
neverEnds = input.next();
}
if(neverEnds.equalsIgnoreCase("yes"))
{
System.out.println("The baby is asleep");
System.exit(0);
}
while(!neverEnds.equalsIgnoreCase("continue")||!neverEnds.equalsIgnoreCase("yes"))
{
System.out.println("Non requested input, please retry");
System.out.println("\nIs the baby asleep? continue\\yes");
neverEnds = input.next();
while (neverEnds.equalsIgnoreCase("continue"))
{
System.out.println(rhymes.getNeverEnds());
System.out.println("Is the baby asleep? continue\\yes");
neverEnds = input.next();
if(neverEnds.equalsIgnoreCase("yes"))
{
System.out.println("The baby is asleep");
System.exit(0);
}
}
if (neverEnds.equalsIgnoreCase("yes"))
{
System.out.println("The baby is asleep");
System.exit(0);
}
}
}
请解释为什么这个问题是得票低。至少留下评论为什么。我认为这个网站应该可以帮助用户解决问题。如果你没有反馈,我怎么知道你为什么不喜欢我的问题。 –
*我该怎么知道你为什么不喜欢我的问题*阅读[问],你在本网站上呈现的第一页,并制作[mcve]。 – Tunaki
是更好吗?我认为我的第一个问题很清楚。当我加入 –