谁能解释一下作为一个初学者我该如何消除这个错误。
public class JavaJoeWeek{
public static void main (String[] args){
int x = 1;
int Money = 200;
int Twenty, Ten, Toonie, Loonie, Quarter, Dime, Nickel = 0;
while (x < 8){
System.out.println("Today is day " + x + " of the week");
if (x == 1) {
int Cost = 30;
int TotalCost = Cost * 1.15;
System.out.println("The cost of the shoes is $" + TotalCost);
Money = Money - TotalCost;
System.out.println("The remaining budget is $" + Money );
}
else{
System.out.println();
}
if (x == 2) {
int CeilingArea = 12 * 7;
System.out.println("The area of the celing is " + CeilingArea + " square meters");
System.out.println("The remaining budget is $" + Money );
}
else{
System.out.println();
}
if (x == 3) {
int PaintCost = CeilingArea * 1.13;
System.out.println("The paint cost $" + PaintCost);
Money = Money - PaintCost;
System.out.println("The remaining budget is $" + Money );
}
else{
System.out.println();
}
if (x == 4) {
int Gas = 36.40 / 0.45;
System.out.println("Java Joe filled up his tank with " + Gas + " liters of gas");
Money = Money - Gas;
System.out.println("The remaining budget is $" + Money );
}
else{
System.out.println();
}
if (x == 5) {
System.out.println("The remaining budget is $" + Money );
}
else{
System.out.println();
}
if (x == 6) {
Money = Money - 23;
System.out.println("The remaining budget is $" + Money );
}
else{
System.out.println();
}
if (x == 7) {
if (Money > 20) {
Money = Money - 20;
Twenty = Twenty + 1;
}
else{
System.out.println("Java Joe has " + Twenty + " twenty dollar bills");
}
if (Money > 10) {
Money = Money - 10;
Ten = Ten + 1;
}
else{
System.out.println("Java Joe has " + Ten + " ten dollar bills");
}
if (Money > 2) {
Money = Money - 2;
Toonie = Toonie + 1;
}
else{
System.out.println("Java Joe has " + Toonie + " toonies");
}
if (Money > 20) {
Money = Money - 20;
Loonie = Loonie + 1;
}
else{
System.out.println("Java Joe has " + Loonie + " loonies");
}
if (Money > 0.25) {
Money = Money - 0.25;
Quarter = Quarter + 1;
}
else{
System.out.println("Java Joe has " + Quarter + " quarters");
}
if (Money > 0.1) {
Money = Money - 0.1;
Dime = Dime + 1;
}
else{
System.out.println("Java Joe has " + Dime + " dimes");
}
if (Money > 0.05) {
Money = Money - 0.05;
Nickel = Nickel + 1;
}
else{
System.out.println("Java Joe has " + Nickel + " nickels");
}
System.out.println("There is $" + Money + " left after the change" );
}
else{
System.out.println();
}
x = x + 1;
}
}
}
太感谢你了!
这些编译错误发生在代码中的特定节点上;您的编辑将用红色波浪下划线突出显示这些内容。如果您没有一个智能编辑器,强烈地考虑获得一个(我推荐Eclipse或Intellij);但即使这样,javac也会打印相关行,然后打印带有^
符号的行,以指向该行的确切部分。
这就是问题所在。那就..读取错误,将其应用于错误所指向的节点。
例如,incompatible types:from double to int
可能有损的转换表示的就是它所说的:您正在获取double
类型的值,并试图将其赋给int
,这可能会导致丢失信息。
您可以通过告诉编译器您希望它做什么来修复这个问题。例如,int TotalCost=(int)(Cost*1.15);
询问编译器:请将这个double显式转换为int,然后java语言规范声明这个特定策略将取消十进制位(因此,如果为正,则向下舍入,如果为负,则向上舍入)。
下一个错误涉及“找不到符号”。您正在使用一个符号(这可能是一个标识符或在html" target="_blank">代码中引用其他东西的其他单词),而编译器不知道您在说什么。
例如,int PaintCost=CeilingArea*1.13
中的CeilingArea
在那里不是已知的符号。好像很奇怪,对吧?ceilingarea
就在您的代码中,大约有6行。但是,错误并不是对你撒谎,所以你应该做一些研究,或者只是考虑一下。
在java中,变量不存在于最近的括号({})之外。关闭if(x==2)
块的括号也意味着您在其中声明的ceilingarea
变量不再存在。这是合乎逻辑的;如果X不是
2呢?事实上,如果编译了代码,那么奇怪的事情就会发生:
ceilingarea到底是什么?不
12*7;x不是2,那条线没有运行。因此,java不允许
ceilingarea`在最近的括号之外存在的想法是有道理的。
为了解决这个问题,您的代码不清楚,所以您需要考虑这意味着什么。如果希望ceilingarea
在括号之外生存,请在括号之外声明它(例如,使用money
变量的方法)。
Debugger指的是编译良好但没有达到预期效果的代码。修复编译器错误不是“调试”。因此,用于调试的工具(如调试器)不适用。没有简单的解决办法;学习java以便理解编译器错误。这需要几周/几个月/几年,至少对我来说是这样的:)
我是Java的初学者,我已经编写了这段代码。当我尝试运行它时,它不断显示错误,例如: < li >错误:不兼容的类型:从double到int的转换可能有损耗 < li >错误:找不到符号 有人能解释一下我作为一个初学者应该如何解决这个问题吗。 太谢谢你了!
我正在修改这段代码的过程中,从一个例子从我的教科书,以兼容一个双数组。代码中有几个地方我不确定如何修复错误“不兼容类型:从double到int的转换可能有损” 我确信还有其他简单的错误我还没有找到,因为我还没有机会调试和校对代码,而且我对Java和编程也很陌生。 谢谢你的帮助!
我得到这个错误的一个小箭头指向十进制整数。允许小数吗?我要写些什么才能让小数被接受?这是我的代码:
我在第18行遇到了这个错误。我不知道为什么当数组grade和变量gradeNum都是double类型时,编译器要我将变量gradeNum强制转换为int类型。免责声明:此代码远未完成。我唯一的问题是这个错误与数组grade和变量gradeNum有关。
我一直在运行此代码并不断收到错误,不知道为什么。双倍漂浮?继续收到消息“错误:不兼容的类型:可能的有损转换从双精度到浮点型。转换如何转换是否有任何问题,因此没有错误 这是较大代码的一部分。
我试图为学校编写一些东西,但我不断收到这个编译错误: 错误:不兼容的类型:从int到byte的转换可能有损失 A = (字节)C / (字节)B;