1

我开始对我的代码视而不见,我的大脑即将过热。我是编程新手。

公共类回收系统{

public static void main(String[] args) {

System.out.println("Please put in a valid bottle");


    Scanner sc = new Scanner(System.in);



    while ( sc.nextInt() != -1) {

        if (sc.nextInt(char a) = getaBottle);
                int bottleAcount++;
    } else if { (sc.nextInt(char b) = getbBottle);
                int bottleBcount++;
    } else if { (sc.nextInt(char c) = getcBottle);
                int bottleCcount++;
    } else { throw new EmptyStackException(); 
        System.out.println("Bottle not recognized");
    }
    System.out.println("The total number of bottles is " + totalBottlecount);
    System.out.println();
    System.out.println("The total amount returned is " + sumOfBottles );
    }
    sc.close();
}

}}

公共类瓶{

private static final double A_BOTTLE = 1.0;
/**
 * @return the aBottle
 */
public static double getaBottle() {
    return A_BOTTLE;
}
/**
 * @return the bBottle
 */
public static double getbBottle() {
    return B_BOTTLE;
}
/**
 * @return the cBottle
 */
public static double getcBottle() {
    return C_BOTTLE;
}
private static final double B_BOTTLE = 1.5;
private static final double C_BOTTLE = 3.0;

}

公共类 EmptyStackException 扩展异常 {

}

公共类瓶子计数{

int bottleAcount = 0;

int bottleBcount = 0;

int bottleCcount = 0; 

int totalBottleCount = bottleAcount + bottleBcount + bottleCcount;

}

我为 getbottle、totalBottlecount 和 bottlecount 变量设置了单独的类。

我想制作一个基于用户输入的回收系统模拟器,如果这有意义的话,有 3 种不同类型的瓶子,它们被分配了不同的值,瓶子总数和 3 种瓶子类型的值的总和。

我遇到了几个编译器错误,我花了几个小时试图解决它们,但每次我这样做时,都会发生新的错误,现在我得到一个“编码器块”。

我被要求删除 ++ 标记,编译器无法解析我的变量和语法错误。我真的很感激一些见解,因为我只有大约 3 周的 Java 编程知识。

更新:编译器错误精确复制意大利面

此行有多个标记
    - 语法错误,插入“)”完成表达式
    - 在 RecyclingSystem 类型中重复方法 nextInt(char)
    - 语法错误,插入“}”完成Block
    - 语法错误,插入“AssignmentOperator Expression”完成Assignment
    - 方法的返回类型丢失
    - 标记的语法错误,删除这些标记
    - 赋值的左边必须是一个变量
    - 语法错误,插入“AssignmentOperator 表达式”以完成表达式
    - 赋值的左边必须是一个变量
    - 语法错误,插入“;” 完成 BlockStatements
    - 标记的语法错误,删除这些标记
    - 标记 ")" 上的语法错误,{ 预期在此标记之后
    - 语法错误,插入“;” 完成声明
4

4 回答 4

0
else if { (sc.nextInt(char b) = getbBottle);
                int bottleBcount++;
    }

if.Also 条件检查使用==not= 它应该是:

else if (sc.nextInt(char b) == getbBottle);
                int bottleBcount++;

你也做不到int bottleBcount++。它毫无意义。由于您已经bottleBcount在另一个类中声明,您必须使用该类的对象来访问它。在此之前将类中的声明从 更改int bottleAcount = 0;public int bottleAcount = 0;。对所有瓶子都这样做。现在您可以将其用作:

public static void main(String[] args) {

System.out.println("Please put in a valid bottle");

     bottleCount counter = new bottleCount();
    Scanner sc = new Scanner(System.in);



    while ( sc.nextInt() != -1) {

        if (sc.nextInt(char a) == getaBottle);
                counter.bottleAcount++;
    } else if (sc.nextInt(char b) == getbBottle);
                counter.bottleBcount++;
    else if (sc.nextInt(char c) == getcBottle);
                counter.bottleCcount++;
     else { throw new EmptyStackException(); 
        System.out.println("Bottle not recognized");
    }
    System.out.println("The total number of bottles is " + totalBottlecount);
    System.out.println();
    System.out.println("The total amount returned is " + sumOfBottles );
    }
    sc.close();
}

此外,该声明int totalBottleCount = bottleAcount + bottleBcount + bottleCcount;没有意义。它不会像你想要的那样工作。您需要编写一个函数来执行此添加,然后调用它。或者,如果您希望这种情况只发生一次(我对此表示怀疑),您可以将其放入构造函数中。

我建议你class在继续之前复习一下变量声明的概念

于 2013-10-04T08:58:29.403 回答
0
int bottleAcount++;

在java中,您需要声明局部变量,例如

type name= 初始值;

然后对其进行任何操作,例如增加或减少。

在你的情况下,在while循环之前声明变量zero为初始值,如

int  bottleAcount = 0;

然后在里面同时增加1,比如bottleAcount++;

或者

bottleAcount += 1;
于 2013-10-04T08:44:31.720 回答
0

所以......如果这是所有代码,那么有很多问题,我可以在一开始推荐什么 - 回到一些基本的 Java 编程课程。

让我们看一下第一行:

if (sc.nextInt(char a) = getaBottle);

  • 首先,这是一个条件,您将getaBottle 的值分配sc.nextInt(char a)给.
  • 其次,nextInt(char a)看起来像方法声明,而不像方法调用。
  • 第三,getaBottle 之前从未声明过
  • 第四,你getaBottle()在一个类中有一个方法Bottle,你可能想要使用它而不是getaBottle(应该)是一个变量

……等等等等。

此代码甚至不是有效的 Java 代码。在那个问题上很难以某种方式帮助你,你只需要多学习一点,我鼓励你这样做。

祝你好运,如果有任何具体问题 - 来问吧!

于 2013-10-04T08:50:41.900 回答
0

你只是有这个问题:

else { 
    throw new EmptyStackException(); 
    System.out.println("Bottle not recognized");
}

检查正确的语法,错误将得到解决。

于 2015-08-08T16:49:05.357 回答