こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

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);
}


}

}

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

投稿日時 - 2013-05-08 21:18:34

QNo.8078999

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.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関数の前でずれてしまっているのがわかるでしょうか?

投稿日時 - 2013-05-08 23:22:15

補足

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

投稿日時 - 2013-05-09 13:31:54

お礼

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

投稿日時 - 2013-05-09 13:22:50

あなたにオススメの質問