1

コードを見て目がくらみ始め、脳が過熱しそうです。プログラミングに関しては初心者です。

public class RecyclingSystem {

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;

}

public class EmptyStackException extends Exception {

}

パブリッククラスのボトルカウント{

int bottleAcount = 0;

int bottleBcount = 0;

int bottleCcount = 0; 

int totalBottleCount = bottleAcount + bottleBcount + bottleCcount;

}

getbottle、totalBottlecount、および bottlecount 変数用に個別のクラスがあります。

ユーザー入力ベースのリサイクル システム シミュレーターを作成したいと考えています。それが理にかなっている場合は、異なる値が割り当てられた 3 つの異なる種類のボトル、合計ボトル数、および 3 つのボトル ​​タイプの値の合計を組み合わせて使用​​します。

いくつかのコンパイラ エラーが発生し、それらすべてを解決するために何時間も費やしましたが、解決するたびに新しいエラーが発生し、「コーダー ブロック」が発生します。

++ トークンを削除するように求められます。コンパイラは変数と構文エラーを解決できません。私はJavaプログラミングを始めて3週間しか経っていないので、洞察をいただければ幸いです。

更新: コンパイラ エラーの正確なコピー パスタ

この行に複数のマーカー
    - 構文エラー、「)」を挿入して式を完成させます
    - タイプ RecyclingSystem の重複メソッド nextInt(char)
    - 構文エラー、「}」を挿入してブロックを完成させます
    - 構文エラー、代入を完了するには「AssignmentOperator Expression」を挿入してください
    - メソッドの戻り値の型がありません
    - トークンの構文エラーです。これらのトークンを削除してください
    - 代入の左辺は変数でなければなりません
    - 構文エラー、「AssignmentOperator Expression」を挿入して式を完成させます
    - 代入の左辺は変数でなければなりません
    - 構文エラー、「;」を挿入 BlockStatement を完成させる
    - トークンの構文エラーです。これらのトークンを削除してください
    - トークン ")" の構文エラー、{ このトークンの後にあると予想される
    - 構文エラー、「;」を挿入 ステートメントを完了する
4

4 に答える 4

0

これには問題があります:

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

正しい構文を確認すると、エラーが解決されます。

于 2015-08-08T16:49:05.357 に答える
0
int bottleAcount++;

Javaでは、次のようにローカル変数を宣言する必要があります

type name= 初期値;

次に、インクリメントやデクリメントなどの操作を行います。

あなたの場合、 while ループの前にzero初期値として変数を宣言します

int  bottleAcount = 0;

次に、1ずつインクリメントしながら内側に、のようにbottleAcount++;

また

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

だから...これがすべてのコードである場合、多くの問題があり、最初に何をお勧めしますか-基本的なJavaプログラミングコースに戻ります。

最初の行の 1 つを見てみましょう。

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

  • まず、これは条件であり、 getaBottleの値をsc.nextInt(char a).
  • 次に、nextInt(char a)メソッド呼び出しではなく、メソッド宣言のように見えます。
  • 第三に、getaBottle は前に宣言されていません
  • 第 4 に、変数である (べきである)の代わりにおそらく使用したいクラスのgetaBottle()メソッドがあります。BottlegetaBottle

...などなど

このコードは有効な Java コードでさえありません。その問題であなたを助けるのは難しいです. もう少し学ぶ必要があるだけです.

頑張ってください。特定の質問がある場合は、来て聞いてください!

于 2013-10-04T08:50:41.900 に答える