我一直在试图弄清楚为什么这个基本的Java程序无法运行。我得到大约7找不到符号错误。任何帮助将非常感激。我很想知道我在做什么错。

该程序只是一些基本计算,会提示您输入一些输入和输出数据,这些数据将显示Speeder的罚款情况。

import java.io.*;
import java.util.*;

public class Lab1 {
public static void main (String args[]) {

    // Create a scanner to read from keyboard
    Scanner kbd = new Scanner(System.in);

    System.out.print("\nEnter Driver's FIRST Name.");
    String firstName = kbd.next();

    System.out.print("\nEnter Driver's LAST Name.");
    String lastName = kbd.next();

    System.out.print("\nEnter Driver's Age.");
    int age = Integer.parseInt(kbd.next());

    System.out.print("\nEnter the Speed Limit.");
    int speedLimit = Integer.parseInt(kbd.next());

    System.out.print("\nEnter Driver's Actual Speed");
    int actualSpeed = Integer.parseInt(kbd.next());

    System.out.print("\nDid violation occur in construction zone? (yes/no)");
    String constructionZone = kbd.next();

    int speedDifference = (actualSpeed - speedLimit);



    if (speedDifference <= 5) {
        int baseFine = 0;
    }
    else if(speedDifference >= 20) {
        int baseFine = (speedDifference / 5) * 50;
    }
    else {
        int baseFine = (speedDifference / 5) * 30;
    }



    if(constructionZone.equals("yes")) {
        int constructionFine = 10;
    }
    else {
        int constructionFine = 0;
    }



    if(age <= 21 && speedDifference >= 20) {
        int underageFine = 300;
    }
    else {
        int underageFine = 0;
    }



    int totalFine = baseFine + constructionFine + underageFine;

    System.out.println("Last Name: " + lastName);
    System.out.println("First Name: " + firstName);
    System.out.println("Driver Age: " + age);
    System.out.println("Speed Limit: " + speedLimit);
    System.out.println("Actual Speed: " + actualSpeed);
    System.out.println("MPH Over Limit: " + speedDifference);
    System.out.println("Base Fine: $" + baseFine);
    System.out.println("Construction Zone Fine: $" + constructionFine);
    System.out.println("Underage Fine: $" + underageFine);
    System.out.println("Total Fine: $" + totalFine);

}
}

最佳答案

您的变量baseFineconstructionFineunderageFineif语句的范围内定义。将它们声明在该范围之外,以便它们在main方法的范围内可见。例如

int baseFine = 0;
if (speedDifference <= 5) {
     baseFine = 0;
}

关于java - Java初学者-找不到符号错误?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16737144/

10-14 12:23
查看更多