0

53行目で、ifなしでelseのエラーが発生しています。私は明らかにifステートメントを持っていますが、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)+".");

    }
}
4

2 に答える 2

7

問題は次のとおりです。

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

その末尾は、ステートメントが終了;したとJavaに信じ込ませ、その後のブロックは条件の外にあるため、その部分には前に一致するものがありません。if{}ifelseif

これはかなり頻繁に発生するバグであり、見つけにくいものです。ブロックがなければelse、コードは正しくコンパイルされたはずですが、間違っていたでしょう。結論: ,またはステートメントの最初;の行に a を決して入れないでください。ifforwhile

于 2013-10-10T00:14:47.897 に答える
5
if(dDaysWorked <= WEEK); - remove last ;
于 2013-10-10T00:14:20.007 に答える