今天,经过半小时的搜索bug,我发现可以在if语句后面加一个分号而不是代码,如下所示:
if(a == b);
// Do stuff
Run Code Online (Sandbox Code Playgroud)
这基本上意味着无论a是否等于b都会完成,if语句没有任何意义.为什么Java没有给我一个错误?有什么情况可以使用吗?
为什么这会回归真实?
String b = "(5, 5)";
String a = "(7, 8)" ;
if(a.equals(b));
{
System.out.printf("Somehow \"%s\" and \"%s\" are the same" ,a,b);
}
Run Code Online (Sandbox Code Playgroud)
输出:
Somehow "(7, 8)" and "(5, 5)" are the same
Run Code Online (Sandbox Code Playgroud) 我的Java代码应该让用户输入一个数字,然后计算该数字的阶乘,我需要使用"for loop"当我输入数字5时,它告诉我,当它应该是120时,阶乘是6.我试图观察分解循环的教程,但它们不会工作,我认为它是因为我有"do"命令从调用中获取值
这是代码:
static Scanner kboard = new Scanner(System.in); //variable to read in values
public static void main(String[] args) {
int choice = 0;
String dummy = "";
String forename = "";
String surname = "";
int number = 0;
do {
System.out.println("1. display the user name, 2. calculate factorial, 3. exit");
choice = kboard.nextInt();
dummy = kboard.nextLine(); //strips out the return
if (choice == 1) {
forename = getforename();
surname = getsurname();
displaydetails(forename, surname);
}
if (choice == 2) …Run Code Online (Sandbox Code Playgroud)