Java 获取没有“如果”错误的“其他”,不知道原因
这是Java语言,我使用TextWrangler。我遇到了几个错误,包括没有“如果”错误的“其他”错误,我不知道为什么。我还必须缴纳公共课税{ public static void mainString[]args{,因为它告诉我它们没有正确编码。我收到的一些错误示例包括:Java 获取没有“如果”错误的“其他”,不知道原因,java,if-statement,compiler-errors,Java,If Statement,Compiler Errors,这是Java语言,我使用TextWrangler。我遇到了几个错误,包括没有“如果”错误的“其他”错误,我不知道为什么。我还必须缴纳公共课税{ public static void mainString[]args{,因为它告诉我它们没有正确编码。我收到的一些错误示例包括: Tax.java:85: error: 'else' without 'if' else(taxable <= 186475) Tax.java:85: error: ';' expected
Tax.java:85: error: 'else' without 'if'
else(taxable <= 186475)
Tax.java:85: error: ';' expected
else(taxable <= 186475)
^
Tax.java:85: error: not a statement
else(taxable <= 186475)
^
import java.util.Scanner;
java.util.Scanner input = new java.util.Scanner(System.in);
double tax;
System.out.print("Please enter filing status: ");
int status = input.nextInt();
System.out.println("Please enter taxable income: ");
double taxable = input.nextDouble();
if(status == 0){
if(taxable <= 8350)
tax = taxable * .10;
System.out.println("Tax is " + tax);
else if(33950 >= taxable && taxable >= 8351)
taxable = taxable - 8350;
tax = taxable * .15 + 8350 * .10;
System.out.println("Tax is " + tax);
else if(82250 >= taxable && taxable >= 33951)
taxable = taxable - 33950 - 8350;
tax = taxable * .25 + 33950 * .15 + 8350 * .10;
System.out.println("Tax is " + tax);
else if(171550 >= taxable && taxable >= 82251)
taxable = taxable - 82250 - 33950 - 8350;
tax = taxable * .28 + 82250 * .25 + 33950 * .15 + 8350 * .10;
System.out.println("Tax is " + tax);
else if(372950 >= taxable && taxable >= 171551)
taxable = taxable - 171550 - 82250 - 33950 - 8350;
tax = taxable * .33 + 171550 * .28 + 82250 * .25 + 33950 * .15 + 8350 * .10;
System.out.println("Tax is " + tax);
else(taxable <= 372951)
taxable = taxable - 372950 - 171550 - 82250 - 33950 - 8350;
tax = taxable * .35 + 372950 * .33 + 171550 * .28 + 82250 * .25 + 33950 * .15 + 8350 * .10;
System.out.println("Tax is " + tax);
}
始终将所有代码块用大括号括起来,尤其是在开始时,包括所有if块、所有循环、所有控制结构
错误的缩进欺骗了您,使您认为if块包含3行代码,而它只包含一行代码
你可以看到:
if (taxable <= 8350)
tax = taxable * .10;
System.out.println("Tax is " + tax);
else if(33950 >= taxable && taxable >= 8351)
taxable = taxable - 8350;
tax = taxable * .15 + 8350 * .10;
System.out.println("Tax is " + tax);
实际上相当于:
if (taxable <= 8350) {
tax = taxable * .10;
}
System.out.println("Tax is " + tax);
// you've got a hanging else here
else if(33950 >= taxable && taxable >= 8351) {
taxable = taxable - 8350;
}
tax = taxable * .15 + 8350 * .10;
System.out.println("Tax is " + tax);
// and more hanging else's below...
if (taxable <= 8350) {
tax = taxable * .10;
System.out.println("Tax is " + tax);
} else if(33950 >= taxable && taxable >= 8351) {
taxable = taxable - 8350;
tax = taxable * .15 + 8350 * .10;
System.out.println("Tax is " + tax);
} //.... and continue similarly throughout your program
因此,将其更改为:
if (taxable <= 8350) {
tax = taxable * .10;
}
System.out.println("Tax is " + tax);
// you've got a hanging else here
else if(33950 >= taxable && taxable >= 8351) {
taxable = taxable - 8350;
}
tax = taxable * .15 + 8350 * .10;
System.out.println("Tax is " + tax);
// and more hanging else's below...
if (taxable <= 8350) {
tax = taxable * .10;
System.out.println("Tax is " + tax);
} else if(33950 >= taxable && taxable >= 8351) {
taxable = taxable - 8350;
tax = taxable * .15 + 8350 * .10;
System.out.println("Tax is " + tax);
} //.... and continue similarly throughout your program
因为if语句没有用{}括起来
这意味着该if语句下只计算下一行。以下行在if语句外执行,然后在else语句前放置if语句。您需要在'then'子句周围加括号。例如:
if(taxable <= 8350) {
tax = taxable * .10;
System.out.println("Tax is " + tax);
}
else .....
如果If或ELSE的主体跨越多个语句,则需要使用大括号。如果If或ELSE的主体跨越多个语句,则在其周围使用大括号。最好始终使用大括号 形式 块是平衡大括号之间的一组零个或多个语句,可以在允许使用单个语句的任何位置使用。下面的示例BlockDemo演示了块的使用 按如下方式书写:
if(status == 0){
if(taxable <= 8350){
tax = taxable * .10;
System.out.println("Tax is " + tax);
}
else if(33950 >= taxable && taxable >= 8351){
taxable = taxable - 8350;
tax = taxable * .15 + 8350 * .10;
System.out.println("Tax is " + tax);
}
....
}
您需要为if添加花括号
if(taxable <= 8350){
tax = taxable * .10;
System.out.println("Tax is " + tax);
}else if(33950 >= taxable && taxable >= 8351){
taxable = taxable - 8350;
tax = taxable * .15 + 8350 * .10;
System.out.println("Tax is " + tax);
}
否则,就好像只有第一行在if中,似乎你是个初学者。习惯使用{}。我以前确实使用过这些,但出于某种原因,它会导致出现更多的问题,但现在这些问题没有出现。仍然会出现其他两个错误,但原始问题已经消失。请不要忘记这行中的“如果”一词:elsetaxable谢谢,能够修复“其他”问题而没有“如果”错误,但我仍然有这些错误突然出现的家伙:java:102:error:从技术上讲,这不是一个可转换的语句,它是多个语句。