否则没有如果错误:我不明白为什么java不认识我的话,如果陈述
在53行它给了我一个错误,如果没有。我显然有一个if语句,但我不知道我在做什么错误使java不能识别它。我试着绕着大括号移动,没有任何工作。否则没有如果错误:我不明白为什么java不认识我的话,如果陈述
import java.util.Scanner;
import java.text.DecimalFormat;
public class Quiz6
{
public static void displayInfo()
{
System.out.println(
"\n\tAuthor: Allen Watson \n" +
"\tClass: \tCSCI 1250-001 \n" +
"\tDate: \t10/09/2013 \n" +
"\tLab: \tQuiz6 \n");
}
public static double calculatePay(int hourWorked, double hourlyRate)
{
double dPay;
dPay = (hourWorked * hourlyRate);
return dPay;
}
public static void main(String[] args)
{
Scanner Keyboard = new Scanner(System.in);
DecimalFormat dfMoney = new DecimalFormat("$#,##0.00");
String strName;
int iCount;
int iDaysWorked;
int iTotalHoursWorked;
int iSingleDayHours;
double dHourlyRate;
final byte WEEK = 7;
displayInfo();
System.out.print("\tWhat is your name: ");
strName = Keyboard.nextLine();
System.out.print("\n\tHow many days did you work this week: ");
iDaysWorked = Keyboard.nextByte();
System.out.print("\n\tHow much do you make an hour: ");
dHourlyRate = Keyboard.nextDouble();
if(dDaysWorked <= WEEK);
{
for(iCount = 1; iCount <= iDaysWorked ; iCount++)
{
System.out.print("\tHow many hours did you work on the day"+iCount+":");
iSingleDayHours = Keyboard.nextInt();
iSingleDayHours += iTotalHoursWorked;
}
}
else
{
bDaysWorked = 0;
System.out.print("A week can only have seven days");
}
calculatePay(iTotalHoursWorked,dHourlyRate);
System.out.print("Hello "+strName+", you worked a total of "+iTotalHoursWorked+" hours over "+iDaysWorked+" days.");
System.out.print("\nWith am hourly rate of "+dfMoney(dHourlyRate)+" you made "+dfMoney(dPay)+".");
}
}
这里的问题:
if(dDaysWorked <= WEEK); // remove the ;
尾随;
是使得Java相信if
语句执行完毕,并{}
块之后它是if
条件之外,因此该else
零件之前没有匹配的if
。
这是一个相当常见的错误,很难找到。如果它不适用于else
块,代码将会正确编译,但它会出错。底线:从来没有,;
在if
,for
或while
声明的开头。
我没有得到一个错误,即java没有从我调用的calculatePay方法返回我的dPay变量。第20行和第59行。 – allenharveyiii
我现在的意思是...... – allenharveyiii
@ user2792997如果这个答案对你有帮助,请不要忘记[accept](http://meta.stackexchange.com/questions/5234/how-通过点击左边的复选标记来接受答案。关于你的新问题:你忘记声明一个局部变量来存储'calculatePay'返回的值。执行此操作:'double dPay = calculatePay(iTotalHoursWorked,dHourlyRate);' –
if(dDaysWorked <= WEEK); - remove last ;
我不会计算你的行数。错误在哪里? – nhgrif
分号是声明的结尾。花括号{} else {}'必须在'if'语句结尾前 - 所以在分号之前 – Floris
请遵循适当的编码约定,并在循环,类,方法等内部使用3+空格进行缩进。 – Tdorno