[英]How to make my if statements run again as if-else statement runs?
Currently if someone inputs a date that is out of bounds it will result in the else
statement running which is all fine and dandy, but I would like it so if-else
statement were to run, it would rerun the if
statements.目前,如果有人输入了一个超出范围的日期,它将导致
else
语句运行,这一切都很好而且很花哨,但我希望它运行if-else
语句,它会重新运行if
语句。 I don't really have a solid idea on what I should do so any help would be appreciated!我真的不知道我应该做什么,所以任何帮助将不胜感激!
import java.util.Scanner;
public class Horoscope {
public Horoscope() {
Scanner sc = new Scanner(System.in);
String output = "Please enter a valid date";
int month;
int day;
System.out.println("What is your month of birth?");
month = sc.nextInt();
System.out.println("What is your day of birth?");
day = sc.nextInt();
if((month == 3 && day >= 20 && day <= 31) || (month == 4 && day >= 1 && day <= 19)) {
System.out.println("You are an Aries");
}
else if((month == 4 && day >= 20 && day <= 30) || (month == 5 && day >= 1 && day <= 20)) {
System.out.println("You are a Taurus");
}
else if((month == 5 && day >= 21 && day <= 31) || (month == 6 && day >= 1 && day <= 20)) {
System.out.println("You are a Gemini");
}
else if((month == 6 && day >= 21 && day <= 30) || (month == 7 && day >= 1 && day <= 22)) {
System.out.println("You are a Cancer");
}
else if((month == 7 && day >= 23 && day <= 31) || (month == 8 && day >= 1 && day <= 22)) {
System.out.println("You are a Leo");
}
else if((month == 8 && day >= 23 && day <= 31) || (month == 9 && day >= 1 && day <= 22)) {
System.out.println("You are a Virgo");
}
else if((month == 9 && day >= 23 && day <= 30) || (month == 10 && day >= 1 && day <= 22)) {
System.out.println("You are a Libra");
}
else if((month == 10 && day >= 23 && day <= 30) || (month == 11 && day >= 1 && day <= 21)) {
System.out.println("You are a Scorpio");
}
else if((month == 11 && day >= 22 && day <= 31) || (month == 12 && day >= 1 && day <= 21)) {
System.out.println("You are a Sagittarius");
}
else if((month == 12 && day >= 22 && day <= 31) || (month == 1 && day >= 1 && day <= 19)) {
System.out.println("You are a Capricorn");
}
else if((month == 1 && day >= 20 && day <= 31) || (month == 2 && day >= 1 && day <= 18)) {
System.out.println("You are an Aquarius");
}
else if((month == 2 && day >= 19 && day <= 29) || (month == 3 && day >= 1 && day <= 20)) {
System.out.println("You are a Pisces");
}
else {
System.out.println(output);
}
}
}
import java.util.Scanner;
public class test {
public test() {
Scanner sc = new Scanner(System.in);
String output = "Please enter a valid date";
int month;
int day;
int k = 0;
// you can use do while loop. write some flag logic like I created k variable and it will be checked in while block
do {
System.out.println("What is your month of birth?");
month = sc.nextInt();
System.out.println("What is your day of birth?");
day = sc.nextInt();
if ((month == 3 && day >= 20 && day <= 31) || (month == 4 && day >= 1 && day <= 19)) {
System.out.println("You are an Aries");
} else if ((month == 4 && day >= 20 && day <= 30) || (month == 5 && day >= 1 && day <= 20)) {
System.out.println("You are a Taurus");
} else if ((month == 5 && day >= 21 && day <= 31) || (month == 6 && day >= 1 && day <= 20)) {
System.out.println("You are a Gemini");
} else if ((month == 6 && day >= 21 && day <= 30) || (month == 7 && day >= 1 && day <= 22)) {
System.out.println("You are a Cancer");
} else if ((month == 7 && day >= 23 && day <= 31) || (month == 8 && day >= 1 && day <= 22)) {
System.out.println("You are a Leo");
} else if ((month == 8 && day >= 23 && day <= 31) || (month == 9 && day >= 1 && day <= 22)) {
System.out.println("You are a Virgo");
} else if ((month == 9 && day >= 23 && day <= 30) || (month == 10 && day >= 1 && day <= 22)) {
System.out.println("You are a Libra");
} else if ((month == 10 && day >= 23 && day <= 30) || (month == 11 && day >= 1 && day <= 21)) {
System.out.println("You are a Scorpio");
} else if ((month == 11 && day >= 22 && day <= 31) || (month == 12 && day >= 1 && day <= 21)) {
System.out.println("You are a Sagittarius");
} else if ((month == 12 && day >= 22 && day <= 31) || (month == 1 && day >= 1 && day <= 19)) {
System.out.println("You are a Capricorn");
} else if ((month == 1 && day >= 20 && day <= 31) || (month == 2 && day >= 1 && day <= 18)) {
System.out.println("You are an Aquarius");
} else if ((month == 2 && day >= 19 && day <= 29) || (month == 3 && day >= 1 && day <= 20)) {
System.out.println("You are a Pisces");
} else {
System.out.println(output);
k = 1;
}
} while (k == 1);
}
}
Solved.解决了。 I made an int called k and set it to 1 and ran the do while it was equal to 1 and if it resulted in a true if statement it returned 0 and ended the code.
我创建了一个名为 k 的 int 并将其设置为 1 并在它等于 1 时运行 do,如果它导致一个 true if 语句,它返回 0 并结束代码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.