• 締切済み

java Eclipse 初心者 メソッド

 次のようなプログラムを書きました。”変数 mainにvoidは無効な型です。”とエラーが発生しました。 package lesson5; import java.util.Random; import java.util.Scanner; public class MentalArithmetic { static Scanner stdIn = new Scanner(System.in); static boolean confirmRetry(){ int cont; do{ System.out.print("もう一度?<Yes・・・1/No・・・0> : "); cont = stdIn.nextInt(); }while (cont != 0 && cont != 1); return cont ==1; } static int mondaix(){ Random rand = new Random(); int a = rand.nextInt(900) + 100; // return a; } static void mondai1( int p, int q, int r){ do{ while(true){ System.out.println(p + "+" + q + "+" + r + " = " ); int k = stdIn.nextInt(); // if(k == p + q + r) // break; System.out.println("違いますよ!!"); } }while (confirmRetry()); public static void main(String[] args) { System.out.println("暗算力トレーニング!!"); while (true) { int x = mondaix(); int y = mondaix(); int z = mondaix(); mondai1( x, y, z); } } } }  これがプログラムです。大学の課題でついにつまずきました。エラーの原因と解決方法(プログラム)を教えていただけるとありがたいです。  初めの方の内容なので簡単なレベル(技術)で解決できると助かります。

みんなの回答

  • mikkarin
  • ベストアンサー率50% (55/110)
回答No.1

質問者様のプログラムにインデント(関数や条件文などのまとまり毎にタブで段落付け)を付けると以下のようになります。 -------------------------- package lesson5; import java.util.Random; import java.util.Scanner; public class MentalArithmetic {   static Scanner stdIn = new Scanner(System.in);   static boolean confirmRetry(){     int cont;     do{       System.out.print("もう一度?<Yes・・・1/No・・・0> : ");       cont = stdIn.nextInt();     }while (cont != 0 && cont != 1);     return cont ==1;   }   static int mondaix(){     Random rand = new Random();     int a = rand.nextInt(900) + 100;//     return a;   }   static void mondai1( int p, int q, int r){     do{       while(true){         System.out.println(p + "+" + q + "+" + r + " = " );         int k = stdIn.nextInt();//         if(k == p + q + r)//           break;         System.out.println("違いますよ!!");       }     }while (confirmRetry());   public static void main(String[] args) {     System.out.println("暗算力トレーニング!!");     while (true) {       int x = mondaix();       int y = mondaix();       int z = mondaix();       mondai1( x, y, z);     }   }   } } -------------------------- カッコの開始と終了がmain関数の前でずれてしまっているのがわかるでしょうか?

1205tomo
質問者

お礼

ありがとうございます。 正しく実行できました。

1205tomo
質問者

補足

 プログラムは実行できました。このプログラムはx,y,zの乱数の和を当てるというモノです。  正解するとyesかnoを選択します。yesのとき新しい問題(新しい乱数)に答え、noのときwhile文から抜け出して終了。  としたのですが、実行の結果yesのとき同じ問題、noのとき新しい問題となってしまいました。  解決策をお願いします。

すると、全ての回答が全文表示されます。