2013-10-10 21 views
0

在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)+"."); 

    } 
} 
+0

我不会计算你的行数。错误在哪里? – nhgrif

+0

分号是声明的结尾。花括号{} else {}'必须在'if'语句结尾前 - 所以在分号之前 – Floris

+0

请遵循适当的编码约定,并在循环,类,方法等内部使用3+空格进行缩进。 – Tdorno

回答

6

这里的问题:

if(dDaysWorked <= WEEK); // remove the ; 

尾随;是使得Java相信if语句执行完毕,并{}块之后它是if条件之外,因此该else零件之前没有匹配的if

这是一个相当常见的错误,很难找到。如果它不适用于else块,代码将会正确编译,但它会出错。底线:从来没有,;ifforwhile声明的开头。

+0

我没有得到一个错误,即java没有从我调用的calculatePay方法返回我的dPay变量。第20行和第59行。 – allenharveyiii

+0

我现在的意思是...... – allenharveyiii

+0

@ user2792997如果这个答案对你有帮助,请不要忘记[accept](http://meta.stackexchange.com/questions/5234/how-通过点击左边的复选标记来接受答案。关于你的新问题:你忘记声明一个局部变量来存储'calculatePay'返回的值。执行此操作:'double dPay = calculatePay(iTotalHoursWorked,dHourlyRate);' –

4
if(dDaysWorked <= WEEK); - remove last ;