-1

18 ~ 21 行目でこのエラーが発生する理由を知る必要があります。ブラケット関連の問題かもしれない気がしますが、わかりません。

import java.util.Scanner;

public class Proj4_1 {

public static void main(String [] args) {
    Scanner reader = new Scanner(System.in);

    int numb1 =;
    int numb2 =; 
    int div =;
    int remainder =;

    System.out.println("Enter a number: ");
    numb1 = reader.nextint();

    System.out.print(numb1);

    System.out.println("Enter another number: ");
    numb2 = reader.nextint();

    System.out.print(numb2);

    if (numb1>numb2){
        div = numb1 / numb2;
        remainder = numb1 % numb2;
    }else{
    if (numb2>numb1) 
        div = numb2 / numb1;
        remainder = numb2 % numb2;  
    }

    System.out.println("The answer quotient is " +div+ "with a remainder of" +remainder);

どんな助けやアドバイスも大歓迎です、事前に感謝します

4

1 に答える 1

6

さて、これを見てください:

int numb1 =;

初期値はいくらになると思いますか?

次のように、値を割り当てずに変数を宣言できます。

int numb1;

=...しかし、値を指定せずにそこを離れることはできません。

ただし、変数に値を与える準備が整うまで、変数を宣言するのを個人的に待ちます。

public static void main(String [] args) {
    Scanner reader = new Scanner(System.in);

    System.out.println("Enter a number: ");
    // Fixed case of nextInt as well...
    int numb1 = reader.nextInt();

    System.out.print(numb1);

    System.out.println("Enter another number: ");
    int numb2 = reader.nextInt();

    System.out.print(numb2);

    // etc
}

メソッドの先頭ですべての変数を宣言する必要はありません。最初に必要な場所でのみ変数を宣言すると、一般的にコードがすっきりします。

if編集:間違っているこのブロックもあります:

if (numb2>numb1)
    div = numb2 / numb1;
    remainder = numb2 % numb2;  
}

開き中かっこを見逃しています。つまり、事実上次のようになります。

if (numb2>numb1) {
    div = numb2 / numb1;
}
remainder = numb2 % numb2;  
// This closing brace is now dangling!
}

あなたは本当にこれを意味しました:

if (numb2 > numb1) {
    div = numb2 / numb1;
    remainder = numb2 % numb2;  
}

コードを定期的にコンパイルすると、さまざまなエラーが発生してここまで到達しないことに注意してください。コンパイル時エラーが 1 つ発生したらすぐに停止し、それを理解していることを確認して修正する必要があります。そうすれば、一度に理解しようとする膨大な数の問題に直面することはありません。さらに、複数のエラーが相互に作用することを心配する必要はありません。

于 2013-04-10T19:53:45.317 に答える