独学で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;
}
No.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を終了
}
}
}
}
}
No.2
- 回答日時:
>初期化子が不正です、のエラーが出ました
う~ん、ごめんなさい。
ウチではエラーにならないし、文法的にも正しいと思われるので、
なぜ、そういうエラーになるかはわかりません。
>複数を一つずつ正解していく方法を作りたいです
一応そういう風にはなっています。
勘違いだったらごめんなさい。
BLUEPIXY さん、本当に有難うございました、再度新規に書き直して実行しました所、お陰で成功しました。
次に(if)を使って不正解なら"間違っています"を表示出来るように書き加えたいと思います。これからもご指導お願いします。
No.1
- 回答日時:
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;
}
}
}
}}
BLUEPIXY さん早速ご回答有難うございます。早速、実行して見ましたが、初期化子が不正です、のエラーが出ました。文字列の問題ですので正解の文字列が幾つもあるのは、素人の考えですが、違うような気がします。どうも、私の問いが伝わっていないみたいです。今回の問題は”こんにちは”が入力されると正解でbreakされます。お問い合わせは、例えば、おはよう、こんばんは、など複数を一つずつ正解していく方法を作りたいです。宜しくご指導をお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- Ruby 【JAVA】数字をひし形に出力するプログラムについて 2 2022/07/11 23:32
- Java Java プログラム public class Main { public static void 3 2023/08/10 23:46
- C言語・C++・C# C# DatagridviewにExcelシートを反映するとエラーが出る 2 2023/05/06 17:12
- Ruby vscode 文字化け 1 2022/05/21 19:17
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- PHP PHPの構文で間違えが分からない 5 2022/07/11 16:38
- PHP SQLとPHPの連結方法がわからないのでアドバイスお願い致します 1 2022/07/12 12:16
- Java Java 配列<選挙> 4 2023/07/31 15:07
- Java Javaの問題なのですが、「3文字以上の英数字文字列を入力し、文字列の中に文字(9)が出てくるまでの 1 2023/06/06 18:55
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
[JAVA]try 内の変数を外で!?
-
C言語のポインターに関する警告
-
JSPやサーブレットでSystem.out...
-
EclipseでJava
-
全角スペースの判定について
-
JAVAでの占い
-
Javaのコマンドライン引数を使...
-
配列を後ろから数えるには?
-
LC発振回路-ループ利得
-
Javaのプログラムがどうしても...
-
標準入力をするメソッドを作り...
-
Webアプリケーション checkbox...
-
コマンドプロンプトに不正な文...
-
改行の判定方法
-
セッションのリセット
-
JAVAのDouble型の小数点以下の...
-
曜日の取得方法を教えて下さい!
-
java シンボルが見つかりません...
-
「続行するには何かキーを押し...
-
javaで質問です。 文字列2023/2...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語のポインターに関する警告
-
[JAVA]try 内の変数を外で!?
-
JSPやサーブレットでSystem.out...
-
JAVAのDouble型の小数点以下の...
-
EclipseでJava
-
「続行するには何かキーを押し...
-
文字列の引き算
-
java シンボルが見つかりません...
-
JAVA 文字色変更
-
改行の判定方法
-
JAVAのエラーの意味が分かりま...
-
Javaのコマンドライン引数を使...
-
曜日の取得方法を教えて下さい!
-
java教えてください。
-
Javaでカレントディレクトリを...
-
JavaにはなぜGO TO ...
-
構文解析中にファイルの終わり...
-
JAVA 三角形の判定
-
複数行キーボード入力した後に...
-
printfの%fにおいて教本どおり...
おすすめ情報