二次元配列を使用して三択クイズを作ろうとしています。
画面イメージ:
問1 りんごは何色?
1.黄色
2.青色
3.赤色
答入力>3
正解。
問2 ミカンは何色?
1.オレンジ色
2.紫色
3.赤色
答入力>2
不正解。正解は1。
-----------------------------------------------
これをプログラムにしてみると、
int tbl[][] = new int[2][5];
tbl[][]={{"りんごは何色?","1.黄色","2.青色","3.赤色",3},
{"ミカンは何色?","オレンジ色","紫色","赤色",1}
};
for(int i=0;i < 1 ;i++)
{
System.out.println(tbl[i][0]);
System.out.println(tbl[i][1]);
System.out.println(tbl[i][2]);
System.out.println(tbl[i][3]);
System.out.print("答入力ー>");
String str = br.readLine();
int name = Integer.parseInt(str);
if(name == tbl[i][4])
{
System.out.print("正解です。");
}
else
{
System.out.print("不正解 答えは"+ tbl.length[i][4] +"です。");
}
}
------------------------------------------------
for文とlengthを使用するという条件を踏まえて作ったのですが、エラーとして文ではありませんとでてさきに進めない状況です。
No.4ベストアンサー
- 回答日時:
#1です。
hiki_zero_さんは
http://java.sun.com/j2se/1.4/ja/docs/ja/api/inde …
をご存知ですか?
このStringを見ると比較するときはこのメソッドを使用すればいいというのがわかるはずです。
==ではStringの比較は正確にできません。
たぶんテキストエディタで書かれてDOSプロンプトでコンパイルしてるのではないでしょうか?
違ってたらごめんなさい。
eclipseというフリーツールなんかを使うと
コードアシストもありますから便利ですよ。
検索サイトで「eclipse」を検索してみてください。
もしこれから先プログラミングなさるんでしたら
勉強にもなりますので、参考になさってください。
人に聞くのも良いですが、調べると覚えますよ!
(といいつつ、私もよく人に聞きますが)
参考URL:http://java.sun.com/j2se/1.4/ja/docs/ja/api/inde …
No.3
- 回答日時:
こんにちは
> if(str == tbl[i][4])
> {
(以下略)
String同士の比較では "=" を使うことはできません.
equalsやequalsIgnoreCaseを使います.
> if(name == tbl[i][4])
のようなint同士だったら比較できるんですけどねぇ.
ついうっかりやってしまいそうな感じですね.
No.2
- 回答日時:
指摘が3つほどある。
1.intの配列を作ってそこに文字列を入れようとしているのはなぜだ?
2.配列に対して一度に値を代入できるのは、変数の宣言時のみ。(Javaではこれを配列の初期化と呼び、配列要素への値の代入とは区別している)
3.これは標準入力から文字を取得できるのか? brはどこでインスタンス化された? おそらくはnew BufferedReader(in)で作成されたものだろうが、どこだ? 今回とは関係ないので省いたのか?
でだ。「文ではありません」エラーが発生するのは2.が原因だ。配列の初期化として行うか、1個1個えっちらおっちら代入していくしかない。
No.1
- 回答日時:
こんばんわ。
これが根本的原因かはわかりませんが、まず気づいたことを。。。
int tbl[][] = new int[2][5];
tbl[][]={{"りんごは何色?","1.黄色","2.青色","3.赤色",3},
{"ミカンは何色?","オレンジ色","紫色","赤色",1}
};
int型のtbl[][]を宣言してるのに
"りんごは何色?"
String型入れてませんか?
tbl[][]はStringでいいと思います。
if(name == tbl[i][4])
もnameをStringにして
equalsで比較したらいかがですか?
java知識が私も浅いので見当違いならごめんなさい。
この回答への補足
tbl[][]はStringでまず一つ目クリアーしました。
次に、
if(str == tbl[i][4])
{
System.out.print("正解です。");
}
else
{
System.out.print("不正解 答えは"+ tbl[i][4] +"です。");
}
のようにかえて実行した場合
通ることには通るのですが、
正解の数字を入力しても不正解になってしまいます。
例えば、
答>2
不正解。正解は2です。
となります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Ruby vscode 文字化け 1 2022/05/21 19:17
- Visual Basic(VBA) VBA チェックボックスの設定について 1 2022/10/24 10:27
- C言語・C++・C# C# DatagridviewにExcelシートを反映するとエラーが出る 2 2023/05/06 17:12
- Ruby パイソンプログラミング 2 2022/12/03 18:44
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
- Visual Basic(VBA) このマクロの説明文を教えてほしいです。 1 2023/01/12 09:17
- Visual Basic(VBA) VBAユーザーフォームでテキストボックスについて。 1 2022/05/31 12:23
- Excel(エクセル) Excel 数式を使用した条件付き書式が、一つのセルにしか反映されない 3 2022/06/08 23:20
- PHP PHPの構文で間違えが分からない 5 2022/07/11 16:38
- 食べ物・食材 青い果実(果汁) 2 2022/08/25 14:26
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ページング
-
配列で、値の入っている要素数...
-
[Ljava.lang.Stringってなんですか
-
【C#】ハッシュテーブル(連想...
-
javamailで複数人にメールを送...
-
Javaで文字を漢字であるか否か...
-
九九の表の応用
-
main(String[] args) の args...
-
この警告はどうすれば?
-
配列を使ってカレンダーを表示...
-
Javaで文字と数字が混ざったも...
-
二次元配列について
-
ResourceBundleのgetStringArra...
-
配列について
-
JavaBeansの配列の値取得方法に...
-
MAPの配列・・・???!!!
-
2次元配列のコピー
-
ファイルの読み込み、配列に格納
-
ArrayListからBean配列に値をセ...
-
javaでVector型の配列に一度格...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ページング
-
java
-
配列をセッションに割り当てた後で
-
この警告はどうすれば?
-
Javaで文字と数字が混ざったも...
-
javaで大容量テキストファイル...
-
セッションを使ったint型の値の...
-
C言語でunsigned char配列を連...
-
配列の中に複数存在する数がい...
-
Javaで文字を漢字であるか否か...
-
[Ljava.lang.Stringってなんですか
-
ArrayListからBean配列に値をセ...
-
C#で動的配列Listの中身をListB...
-
【C#】ハッシュテーブル(連想...
-
csvファイルを2次元配列に格納
-
配列で、値の入っている要素数...
-
『args[]』とは?
-
【Ajax通信&Java】配列の受け取...
-
データベースから取得したデー...
-
n番目に大きな値を探索する
おすすめ情報