• 締切
  • すぐに回答を!

java Eclipse 初心者 メソッド

  • 質問No.8078999
  • 閲覧数988
  • ありがとう数1
  • 回答数1

お礼率 16% (3/18)

 次のようなプログラムを書きました。”変数 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);
}


}

}

}
 これがプログラムです。大学の課題でついにつまずきました。エラーの原因と解決方法(プログラム)を教えていただけるとありがたいです。
 初めの方の内容なので簡単なレベル(技術)で解決できると助かります。

回答 (全1件)

  • 回答No.1

ベストアンサー率 50% (55/110)

質問者様のプログラムにインデント(関数や条件文などのまとまり毎にタブで段落付け)を付けると以下のようになります。
--------------------------
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

お礼率 16% (3/18)

 プログラムは実行できました。このプログラムはx,y,zの乱数の和を当てるというモノです。
 正解するとyesかnoを選択します。yesのとき新しい問題(新しい乱数)に答え、noのときwhile文から抜け出して終了。
 としたのですが、実行の結果yesのとき同じ問題、noのとき新しい問題となってしまいました。
 解決策をお願いします。
投稿日時:2013/05/09 13:31
お礼コメント
1205tomo

お礼率 16% (3/18)

ありがとうございます。
正しく実行できました。
投稿日時:2013/05/09 13:22
関連するQ&A

その他の関連するQ&Aをキーワードで探す

ピックアップ

ページ先頭へ