gpt4 book ai didi

Java Gas Station 项目编码遇到的麻烦

转载 作者:行者123 更新时间:2023-12-02 01:54:13 26 4
gpt4 key购买 nike

我是 Java 编码的初学者。不到 4 周前刚刚开始在线类(class)。我目前正在进行一个项目,我需要

traverse a logical decision to determine the need of a customer. Simulate a gas station that has 4 stations...

将我目前所知道的内容拼凑起来后,我想出了下面的代码。它确实有一些黄色错误,当我在 Eclipse 中运行时,我只得到打印输出:

welcome to gas station, choose station number 1, 2 or 3. 

我可以从这里获得一些有关该怎么做的帮助吗?

public static void main(String[] args) {

int stations;
keyboard2 = new Scanner(System.in);

System.out.print("Welcome to Gas Station \n");
System.out.println("Choose Station Number: \n");
System.out.println("1, 2, or 3 \n");

stations = keyboard2.nextInt(2);

switch (stations) {
case 1:
System.out.println("You entered Station 1.");
break;

case 2:
System.out.println("You entered Station 2.");
break;

case 3:
System.out.println("You entered Station 3.");
break;

default:
System.out.println("Error: Invalid Number");
}
}

private Scanner keyboard;

{

System.out.print("Choose your fuel type:\n");
System.out.println("Press 1 for Unleaded\n");
System.out.println("Press 2 for Unleaded Plus\n");
System.out.println("Press 3 for Unleaded Premium\n");

int gastype;
gastype = keyboard.nextInt(2);

switch (gastype) {
case 1:
System.out.println("You Chose Unleaded.");
break;

case 2:
System.out.println("You Chose Unleaded Plus.");
break;

case 3:
System.out.println("You Chose Unleaded Premium.");
break;

default:
System.out.println("Error: Invalid Number");

}
}

private Scanner keyboard1;

{

System.out.print("Enter gallon amount"
+ "Max amount 30 gallons)");
int numberGallons;
numberGallons = keyboard.nextInt(9);
}

double totalPayment = 0.0;
double numberGallons = 0;
double Unleaded = 0;
double UnleadedPlus = 0;
double UnleadedPremium = 0;
double tax = 0;
private static Scanner keyboard2;

{
Unleaded = 2.50;
UnleadedPlus = 3.00;
UnleadedPremium = 3.50;
tax = 3.5;

totalPayment = numberGallons + Unleaded * tax;

System.out.println("total gas amount: " + numberGallons
+ "\ntotal payment:" + Unleaded * tax + "\nthank you");

}

最佳答案

如果我用占位符删除部分代码,并正确缩进(可以通过“折叠”来模拟),您似乎缺少有关类结构的知识,并且需要更多练习缩进/注意括号IDE 中的这些代码部分以及自动格式化)。

    public static void main(String[] args)    
{//Start main method
int stations;
keyboard2 = new Scanner(System.in);

System.out.print("Welcome to Gas Station \n");
System.out.println("Choose Station Number: \n");
System.out.println("1, 2, or 3 \n");

stations = keyboard2.nextInt(2);


switch (stations)
{
case 1:
System.out.println("You entered Station 1.");
break;


case 2:
System.out.println("You entered Station 2.");
break;

case 3:
System.out.println("You entered Station 3.");
break;

default:
System.out.println("Error: Invalid Number");
}//End Switch
}//End Main Method

private Scanner keyboard;
{
//Snip 1
}

private Scanner keyboard1;
{
//Snip 1
}
//Marker 2
double totalPayment = 0.0;
double numberGallons = 0;
double Unleaded = 0;
double UnleadedPlus = 0;
double UnleadedPremium = 0;
double tax = 0;
private static Scanner keyboard2;
{
//Snip 1
}
}//Class End

我用//Snip 1注释的部分是外部你的主要方法,java将它们解释为类初始值设定项。

(参见 https://www.dummies.com/programming/java/what-is-an-initializer-in-java/ )

这些不与您的 main 方法一起运行,并且实际上根本不运行,因为它们不是静态类初始值设定项。

专用扫描仪键盘;专用扫描仪键盘1;另一个fields下面的 //Marker 2 正在类实例范围中定义。

与所有主入口点一样,您的 main 方法是静态的,尚未初始化任何类,因此类实例范围内的任何内容都未运行,并且没有运行任何类初始值设定项。

要解决此问题,只需删除//End Main Method 括号,在类的最后创建另一个括号,所有内容都将再次包含在 main 方法中。我建议此时自动格式化您的代码。

Eclipse 会提示这些字段,这些字段现在将转换为局部变量,因为它们将在 main 方法的范围内定义,因此您可以通过删除键盘、keyboard1 前面的访问修饰符“private”来解决此问题。事实上,每次使用时都可以将相同的键盘变量用作局部变量,即使不将其设为类中的字段也是如此。

希望这有帮助。

编辑:看来您可能一直在尝试将其拆分为多个方法,并使它们与字段混淆。如果是这样,您需要阅读如何声明方法,仅在字段后指定 {} 是不够的。

在这种情况下,Snip 1 将标记您尝试创建新方法的位置。您需要将它们指定为

private static void keyboard1()
{
Scanner keyboard1 = new Scanner(System.in);
//Snip1
};

在这种情况下,private voidkeyboard1()Scannerkeyboard1 没有任何关系,可以随意命名。然后,您需要继续在主方法中调用此方法。由于它是静态的,所以这样做是安全的,但如果您需要多个加油站,则需要将它们设为非静态,并初始化一个实例。

如果您在方法之间传递变量时遇到困难,您可以 1. 将它们声明为类中的字段(请注意,它们必须是静态的,因为您是在静态 main 方法中访问它们,而无需实例化类。 ) 或者将它们作为参数传递给方法。

关于Java Gas Station 项目编码遇到的麻烦,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52548411/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com