- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 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/
我需要替换 ArrayList 中过时的对象与 TreeMap> 中更新的对象. TreeMap> 仅具有 ArrayList 中的部分 Station 对象。 有人知道一种快速、顺利地做到这一点的方
我的域中有 Route 和 Station 类。路线描述了车辆通过序列车站和旅程元数据(运营商、公交车号等)所采取的旅程。 因此,路线将有一个车站列表和一些附加元数据。此列表还需要一些辅助方法,例如f
我是 Java 编码的初学者。不到 4 周前刚刚开始在线类(class)。我目前正在进行一个项目,我需要 traverse a logical decision to determine the ne
我安装pyradio在我的终端上收听广播。关于guidelines这行pyradio --stations STATIONS应该显示我的stations.csv的安装路径,但我什么也没找到。我想知道这
例如,如果我有两列火车 X 和 Y,它们行驶: 火车............车站 X 火车:经过 A 站; B站; C站; D站 Y 列车:经过 B 站; X站; D站; Y站 如果乘客询问哪些列车从
我想设计一个关于公交车站的数据库。全市大约有60辆公交车,每辆公交车都包含这些信息: 巴士编号 公交车名称 沿途站点列表(向前和向后) 这个数据库必须是高效的搜索,例如,当用户想要列出经过 A 站和
我正在尝试从flutter中的函数返回Future对象,我必须在数据库查询块中添加return语句,无法从外部访问它,但是我遇到了这个错误Function has a return type of '
我之前用谷歌搜索过,发现通过打开“访客隔离”下的“启用复制和粘贴”,我可以将文本从访客复制/剪切/粘贴到主机,反之亦然。但点击播放器->管理->虚拟机设置->选项后,我没有看到“访客隔离”。我尝试安装
我正在 Synology 盒子上运行 Note Station 插件,但我不知道 Note Station 的文件存储位置。我尝试在用户的主目录中查找私有(private)文件夹,但没有成功。我想确保
这是来自 HackerRank 的挑战问题. 我的第一个查询工作正常: select distinct city from station where city not regexp '^[aeiou
我想要实现的效果是,将鼠标悬停在某些图标上将播放某些音频文件。当您切换图标时,新音频将从最后一个音频停止的确切时间开始播放 - 这应该就像您在 radio 上更改 channel 一样。 下面的代码有
Synology NAS DS212j 是否有“File Station”应用程序的数据库?在哪里可以找到它?我无法使用 phpMyAdmin 或 phpPgAdmin 找到它。一些在 File St
我正在使用 SimplecursorAdapter 填充 Spinner。如何将“选择电台...”添加为第一项? SimpleCursorAdapter adapter = new SimpleCur
已关闭。这个问题是 not reproducible or was caused by typos 。目前不接受答案。 这个问题是由拼写错误或无法再重现的问题引起的。虽然类似的问题可能是 on-top
已编辑:为了使用 xUnit VisualStudio Runner,需要将其安装为 Nuget 包。这种方法是有问题的,因为 (1) 用户有义务将此包添加到它正在创建的每个项目中,以及 (2) 对包
我想自动查找距离给定地址最近的火车站名称(服务器端)。 换句话说,我想编写一个函数,给定任何位置字符串 X,它返回站名字符串 Y。 我有使用谷歌地图 API 的经验,但我还没有找到执行此操作的方法。
有m个站和n个房子,给定每个站和房子的(x,y)坐标,输出每个房子最近的站。 后来,这个问题被概括为寻找离每个房子最近的 k 个车站。 我的看法:对于每个房子,建立一堆距离(自下而上)到车站,然后弹出
查看纽约的谷歌地图时,我们可以看到许多地铁站。如何获取附近地铁站的数据? 例如,我发送一个请求,包含我所在位置的经纬度和距离半径,它会返回给定距离内的地铁站 最佳答案 您可以使用 Places Lib
我遇到了下一个很难解决的问题。 我有一条直线,上面有 M 个村庄的列表。我需要在这些村庄分配 N 个火车站,以使一个村庄到火车站的平均距离最小。示例: 村庄:-----1------------2--
API 响应: { "ok": true, "license": "CC BY 4.0 - https:\/\/creativecommons.tankerkoenig.de", "da
我是一名优秀的程序员,十分优秀!