アプリ版:「スタンプのみでお礼する」機能のリリースについて

独学でjavaに挑戦中ですが、書店で購入した本のソースプログラムを少し変えたいのですが、ご教授をお願いします。数当てゲームのプログラムで、一つの設問を正解すると終了するゲームですが、複数の設問を設定したいのです、質問がうまく伝わるか不安ですがよろしくお願いします、プログラムを少しだけ書いておきます。
import java.io.*;

class Mojiretuate
{
public static void main(String[] args) throws IOException
{
String str = "こんにちは";  /*質問箇所*/
String str2;
BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));
System.out.println("文字列当てゲームです。");
System.out.println("答えは何かのあいさつです。");
for(;;){
System.out.println("\n入力:");
str2 = br.readLine();
System.out.println("入力文字列の長さ:" + str2.length());
if(str.equals(str2)){
System.out.println("正解です!");
break;
} 

A 回答 (3件)

>初期化子が不正、のエラー


単純にソースを写し間違えたのでしょう。
手打ちではなく、コピーで写してみて下さい。
あなたの意図する動きになっているはずです。



以下、BULUEPIXIYさんのソースに説明をつけます。
import java.io.*;

class Mojiretuate {
public static void main(String[] args) throws IOException {
// 正解を問題数文用意
String[] str = { "おはよう", "こんにちは", "こんばんわ" };
String str2; // ユーザの入力を入れる変数

// 入力を読み込むバッファ
BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));
System.out.println("文字列当てゲームです。");

// 質問→回答入力→判定 を繰り返す
// ループ一度目は"おはよう"が正解 ※ループ1
for (int i = 0; i < str.length; i++) {
System.out.println("答えは何かのあいさつです。");

// 正解するまで繰り返し ※ループ2
for (;;) {
System.out.println("\n入力:");
str2 = br.readLine(); // ユーザの入力を読み込む
System.out.println("入力文字列の長さ:" + str2.length());
if (str[i].equals(str2)) { //正解の文字列と等しいか判定。str[i]はループ1の一度目は"おはよう"
System.out.println("正解です!");
break; // 正解だった場合に、ループ2を終了
}
}
}
}
}
    • good
    • 0

>初期化子が不正です、のエラーが出ました


う~ん、ごめんなさい。
ウチではエラーにならないし、文法的にも正しいと思われるので、
なぜ、そういうエラーになるかはわかりません。

>複数を一つずつ正解していく方法を作りたいです
一応そういう風にはなっています。
勘違いだったらごめんなさい。
    • good
    • 0
この回答へのお礼

BLUEPIXY さん、本当に有難うございました、再度新規に書き直して実行しました所、お陰で成功しました。
次に(if)を使って不正解なら"間違っています"を表示出来るように書き加えたいと思います。これからもご指導お願いします。

お礼日時:2005/07/03 11:57

import java.io.*;



class Mojiretuate {
public static void main(String[] args) throws IOException {
String[] str = {"おはよう","こんにちは","こんばんわ"};
String str2;
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("文字列当てゲームです。");
for(int i=0;i<str.length;i++){
System.out.println("答えは何かのあいさつです。");
for(;;){
System.out.println("\n入力:");
str2 = br.readLine();
System.out.println("入力文字列の長さ:" + str2.length());
if(str[i].equals(str2)){
System.out.println("正解です!");
break;
}
}
}
}}
    • good
    • 0
この回答へのお礼

BLUEPIXY さん早速ご回答有難うございます。早速、実行して見ましたが、初期化子が不正です、のエラーが出ました。文字列の問題ですので正解の文字列が幾つもあるのは、素人の考えですが、違うような気がします。どうも、私の問いが伝わっていないみたいです。今回の問題は”こんにちは”が入力されると正解でbreakされます。お問い合わせは、例えば、おはよう、こんばんは、など複数を一つずつ正解していく方法を作りたいです。宜しくご指導をお願いします。

お礼日時:2005/07/02 22:24

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!