我希望我的程序在我输入“n”或“n”后被终止,但当我这样做时,它反而不断请求更多的输入。我需要做什么来解决这个问题?
public static void main (String[] args){
Scanner userInputReader = new Scanner(System.in);
System.out.print("Your name: ");
String name = userInputReader.nextLine();
System.out.print("Gender required (M/F): ");
char genDer = userInputReader.next().charAt(0);
System.out.print("Your age: ");
int age = userInputReader.nextInt();
System.out.print("Your Resting Heart Rate: ");
int hrRest = userInputReader.nextInt();
double hrMax;
double vo2Max;
while (age > 0 && hrRest > 0 && genDer != 'M' || genDer != 'm' && genDer != 'F' || genDer != 'f') {
while (age < 0) {
System.out.println("Your age cannot be Negative");
System.out.print("Please enter your age again: ");
age = userInputReader.nextInt();
}
while (hrRest < 0) {
System.out.println("Invalid resting heart rate");
System.out.print("Please type in Your Resting Heart Rate more carefully: ");
hrRest = userInputReader.nextInt();
}
while (true) {
System.out.print("Type Y to show the results/N to stop: \n");
char answer = userInputReader.next().charAt(0);
if (answer == 'Y' || answer == 'y') {
hrMax = 220 - age;
vo2Max = 15 * (hrMax / hrRest);
// System.out.println("Display hrMax: " + hrMax);
// System.out.println("Display vo2Max: " + vo2Max);
String typeofSports = "";
if (genDer == 'M' || genDer == 'm') {
if (age >= 18 && age <= 30 && vo2Max >= 40 && vo2Max <= 60) {
typeofSports += "\n ---> Basketball";
}
if (age >= 18 && age <= 26 && vo2Max >= 62 && vo2Max <= 74) {
typeofSports += "\n ---> Cycling";
}
if (age >= 18 && age <= 26 && vo2Max >= 55 && vo2Max <= 67) {
typeofSports += "\n ---> Canoeing";
}
if (age >= 18 && age <= 22 && vo2Max >= 52 && vo2Max <= 58) {
typeofSports += "\n ---> Gymnastics";
}
if (age >= 10 && age <= 25 && vo2Max >= 50 && vo2Max <= 70) {
typeofSports += "\n ---> Swimming";
} else {
System.out.println("Look!!! We have calculated the final result---> \n ");
}
}
if (genDer == 'F' || genDer == 'f') {
if (age >= 18 && age <= 30 && vo2Max >= 43 && vo2Max <= 60) {
typeofSports += "\n ---> Basketball";
}
if (age >= 18 && age <= 26 && vo2Max >= 47 && vo2Max <= 57) {
typeofSports += "\n ---> Cycling";
}
if (age >= 18 && age <= 26 && vo2Max >= 47 && vo2Max <= 67) {
typeofSports += "\n ---> Canoeing";
}
if (age >= 18 && age <= 22 && vo2Max >= 36 && vo2Max <= 50) {
typeofSports += "\n ---> Gymnastics";
}
if (age >= 10 && age <= 25 && vo2Max >= 40 && vo2Max <= 60) {
typeofSports += "\n ---> Swimming";
} else {
System.out.println("Look!!! We have calculated the final result---> \n ");
}
}
System.out.println("Recommended sports are: " + typeofSports);
// update the condition
System.out.print("");
name = userInputReader.nextLine();
System.out.print("Gender required (M/F): ");
genDer = userInputReader.next().charAt(0);
System.out.print("Your age: ");
age = userInputReader.nextInt();
System.out.print("Your Resting Heart Rate: ");
hrRest = userInputReader.nextInt();
}
if (answer == 'N' || answer == 'n') {
break; // What should I put here?
}
}
你的破门而入:
while (age > 0 && hrRest > 0 && genDer != 'M' || genDer != 'm' && genDer != 'F' || genDer != 'f') {
...
while(true) {
...
if (answer == 'N' || answer == 'n') {
break; // What should i put here?
}
...
}
...
}
仅中断嵌套的while循环while(true){...}
,但不中断外部循环。您可以使用return
代替break
,或者在外部循环中添加标志boolean stop=false;
并在输入为'n''n'
时设置为true
,然后在外部循环中添加检查以在stop==true
时再次中断。
我不太理解while循环中的条件,以及它代表什么'>>>='。
要打印: 这不是一个家庭作业问题,我只是不能理解这个概念。
其目的是对用户输入的分数进行排序、显示和平均。我还没弄明白。如果你已经解决了这个问题,请帮忙。到目前为止,我已经尝试了这段代码,但它不起作用。 我从这段代码中得到的只是一个编译器错误。有人有什么建议吗?谢谢你。
免责声明:(我知道我的标题不是很有描述性,因为我甚至不知道错误发生在哪里,所以我没有太多的东西可以放在那里。) 所以,我试图写一个无用的剧本来浪费时间,结果我完全投入其中。它本来是用来制作某种便携式垃圾档案的。 在检查后,我输入密码,它只是结束,没有错误消息,它不删除文件在垃圾文件夹。
我正在我的Android设备上进行实验,尝试使用应用程序代码,以便我可以同时学习它。但我对如何编辑smali代码非常着迷。对于只学过OOP语言的人来说,这并不是那么简单。 这是我的smali代码: 这是它的等效java代码: 现在我想让事情简单一些,在参数“MyProcessor”中加一个常量。Java语言中的l'I.E: 我尝试过几种不同的方法,比如: 但是我在编译错误,所以这显然是错误的。此外
我对javascript还是个新手,只知道基本知识。有人能解释一下下面的代码,就像在调用init函数时发生的流中一样吗? 我对下面代码的理解是,一旦调用init函数,就会设置一个全局变量输出,该输出映射到一个带有id输出的HTML元素。然后调用。这将创建一个WebSocket对象。这之后是我不完全理解的部分。 在行中,WebSocket对象有一个名为open的属性,我们将它设置为任何返回的属性 。