Java初学者-找不到符号错误?

Java初学者-找不到符号错误?,java,Java,我一直在想为什么这个基本的java程序不能运行。我得到大约7个找不到符号错误。任何帮助都将不胜感激。我很想知道我做错了什么 该程序只是一些基本的计算,提示输入和输出数据,以显示超速驾驶者的罚款是多少 import java.io.*; import java.util.*; public class Lab1 { public static void main (String args[]) { // Create a scanner to read from keyboard

我一直在想为什么这个基本的java程序不能运行。我得到大约7个找不到符号错误。任何帮助都将不胜感激。我很想知道我做错了什么

该程序只是一些基本的计算,提示输入和输出数据,以显示超速驾驶者的罚款是多少

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);

}
}
import java.io.*;
导入java.util.*;
公共类Lab1{
公共静态void main(字符串参数[]){
//创建从键盘读取的扫描仪
扫描仪kbd=新扫描仪(System.in);
System.out.print(“\n输入驱动程序的名字。”);
String firstName=kbd.next();
System.out.print(“\n输入驱动程序的姓氏。”);
字符串lastName=kbd.next();
System.out.print(“\n输入驾驶员的年龄”);
int age=Integer.parseInt(kbd.next());
System.out.print(“\n输入速度限制”);
int speedLimit=Integer.parseInt(kbd.next());
System.out.print(“\n输入驾驶员的实际速度”);
int actualSpeed=Integer.parseInt(kbd.next());
系统输出打印(“\nID违规发生在施工区?(是/否)”;
字符串constructionZone=kbd.next();
int速度差=(实际速度-速度限制);
如果(速度差=20){
int baseFine=(速度差/5)*50;
}
否则{
int baseFine=(速度差/5)*30;
}
如果(constructionZone.equals(“是”)){
int-constructionFine=10;
}
否则{
int-constructionFine=0;
}
如果(年龄=20岁){
int underageFine=300;
}
否则{
int underageFine=0;
}
int totalFine=baseFine+constructionFine+underageFine;
System.out.println(“姓氏:”+lastName);
System.out.println(“名字:“+firstName”);
System.out.println(“驾驶员年龄:+年龄”);
System.out.println(“速度限制:+速度限制”);
System.out.println(“实际速度:+实际速度”);
系统输出打印项次(“英里/小时超限:+速度差”);
System.out.println(“基本罚款:$”+基本罚款);
System.out.println(“施工区罚款:$”+施工罚款);
System.out.println(“未成年人罚款:$”+未成年人罚款);
System.out.println(“罚款总额:$”+罚款总额);
}
}

您的变量
baseFine
constructionFine
underageFine
if
语句的范围内定义。在该范围之外声明它们,以便它们在
main
方法的范围内可见。比如说

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

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

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

如果(speedDifference您遇到了可变范围问题


underageFine、constructionFine和baseFine需要在if/elso之外定义,以便方法的其余部分可以访问。

您遇到了可变范围问题


underageFine、constructionFine和baseFine需要在if/elso之外定义,以便该方法的其余部分可以访问。

baseFine
constructionFine
underageFine
这三个变量没有正确声明。您已在局部范围内声明了这三个变量。但在范围之外它可以不被承认。 因此,将它们声明为类成员

什么是可变范围

由于您是java初学者,所以我认为您最好了解变量作用域是什么

变量的作用域是程序中可以引用变量名的部分

您可以在几个不同的位置声明变量:

  • 在类主体中作为类字段
  • 作为方法或构造函数的参数
  • 在方法体或构造函数体中
  • 在语句块内,例如在while或for块内

变量作用域是指变量的可访问性。您既不能在声明变量之前引用变量,也不能在作用域之外使用它们。

baseFine
constructionFine
underageFine
这三个变量未正确声明。您已在本地作用域内声明了这三个变量。但是无法识别范围的一侧。 因此,将它们声明为类成员

什么是可变范围

由于您是java初学者,所以我认为您最好了解变量作用域是什么

变量的作用域是程序中可以引用变量名的部分

您可以在几个不同的位置声明变量:

  • 在类主体中作为类字段
  • 作为方法或构造函数的参数
  • 在方法体或构造函数体中
  • 在语句块内,例如在while或for块内

变量范围是指变量的可访问性。您既不能在声明变量之前引用变量,也不能在范围之外使用它们

,编译器/IDE没有指出错误的位置吗?首先声明baseFine、constructionFine和underageFine,编译器/IDE没有指出错误的位置吗?de克莱尔·贝斯菲恩,先是建筑菲恩和未成年菲恩