質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

1回答

1240閲覧

Javaで間違い回答番号を出力したいです。[配列処理に困っている]

Yuta25jp

総合スコア13

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2019/01/19 08:15

編集2019/01/19 08:58

前提・実現したいこと

javaを使用して「英文の穴埋め」問題を作成しています。
回答は回答番号1〜4から正解を1つ選ぶ4択式なのですが、最後に不正解の問題番号を出力したいです。

発生している問題・エラーメッセージ

ここでは、間違った問題番号を出力するためのコードを教えていただきたいです。
よろしくお願いいたします。

該当のソースコード

Java

1import java.io.*; 2 3public class Eitango 4{ 5 public static void main(String[] args) throws IOException 6 { 7 BufferedReader br= 8 new BufferedReader(new InputStreamReader(System.in)); 9 String[] Q=new String[11]; 10 11 Q[1]="A: Can I borrow your camera ?\n" 12 +"B: Sure, but it doesn't ( ) very well." 13 +"It's very old.\n" 14 +"1,work 2,play 3,speak 4,live"; 15 16 Q[2]="A: Have you finished your homework, Ken ?\n" 17 +"B: No. I'm ( ) doing it.\n" 18 +"1,often 2,long 3,still 4,fun "; 19 20 Q[3]="A: My name is Christopher, but my friends ( ) me Chris. \n" 21 +"1,say 2,call 3,speak 4,tell " ; 22 23 Q[4]="A:Kate really ( ) herself last year.\n" 24 +"She wants to go there again this year.\n" 25 +"1,time 2,enjoyed 3,put 4,passed"; 26 27 Q[5]="A: Excuse me. I ask you a ( ) ?\n" 28 +"B: Sure.\n" 29 +"1,sorry 2,favor 3,please 4,door"; 30 31 Q[6]="A: Hello. This is Sam. Can I speak to Lisa ?\n" 32 +"B: ( ). She is out now.\n" 33 +"1,Sorry 2,Thanks 3,Great 4,OK"; 34 35 Q[7]="A: I want be a singer. How ( ) you ?\n" 36 +"1,much 2,many 3,about 4,often"; 37 38 Q[8]="A: Are you free on Sunday ? We'll have a party.\n" 39 +"B: Yes. What ( ) ?\n" 40 +"A: At noon.\n" 41 +"1,time 2,kind 3,party 4,up"; 42 43 Q[9]="A: We go to school ( ) Monday to Friday. \n" 44 +"1,too 2,on 3,in 4,from"; 45 46 Q[10]="A:What ( ) of music do you like the best ?\n" 47 +"B: I like rock music the best.\n" 48 +"1,kind 2,time 3,subject 4,place"; 49 50 int[] V={ 0, 1, 3, 2, 2, 2, 1, 2, 1, 4, 1}; // 解答リスト 51 int correct=0,error=0,errornum,total=10; 52 53 for (int i=1; i<=10; i++) 54 { 55 System.out.println(Q[i]); // 問題の表示 56 System.out.print("1~4 の番号を入れて下さい=>"); 57 int ans=Integer.parseInt(br.readLine()); // 回答の入力 58 if (ans==V[i])correct++; // 正解の場合 59 else if (ans!=V[i]) errornum = V[i]; 60 else error++; // 不正解の場合 61 System.out.println(); 62 } 63 64 System.out.println("10 問中 "+correct+"問正解でした."); 65 int percent = correct * 100 / total; 66 System.out.println("正答率は"+ percent + "%でした."); 67 System.out.println("不正解番号は"+ V[i} + "番でした.");  68 69 } 70} 71 72

試したこと

間違った問題の配列番号を読み取って、その問題番号を出力するために

else if (ans!=V[i]) errornum = V[i] //for文の中に記入 System.out.println("不正解番号は"+ V[i} + "番でした."); //全体の最後

を記入しているのですが、コンパイルに失敗してしまい、下記のエラーが表示されました。

Eitango.java:67: エラー: ']'がありません System.out.println("不正解番号は"+ V[i} + "番でした.");  ^ Eitango.java:67: エラー: 文ではありません System.out.println("不正解番号は"+ V[i} + "番でした.");  ^ Eitango.java:67: エラー: ';'がありません System.out.println("不正解番号は"+ V[i} + "番でした.");  ^ Eitango.java:67: エラー: '\u3000'は不正な文字です System.out.println("不正解番号は"+ V[i} + "番でした.");  ^ Eitango.java:69: エラー: '\u3000'は不正な文字です  } ^ Eitango.java:69: エラー: ';'がありません  } ^ Eitango.java:70: エラー: 構文解析中にファイルの終わりに移りました } ^ エラー7個

どうしても解決方法が思いつかず、配列の処理がわからない状況です。
どなたか、配列の処理方法を教えていただけませんか。

補足情報(FW/ツールのバージョンなど)

エディター:Atom
PC:Mac

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2019/01/19 08:19

インデントをきちんとつけてください。 また「コードを教えて」だと丸投げなので、もう少し考えて試したことなど記載してください。あくまで質問者さんがやろうとしている仕様なので「そういうコード」は存在せず、1から考えるとなると回答者の負担が大きすぎます(それだけ回答が得られにくいということです)
greeash

2019/01/19 08:50 編集

>最後に間違った問題の配列番号を読み取って、その問題番号を出力するために この「最後」がどこなのかあいまいなので、エラーが出たプログラムをそのまま貼り付けて欲しいです。本文のソースコードをこちらでコピペしたら、全角空白が混ざっていたり、(else ifの中で使ってる)宣言されてない変数が記載されていたりと、なにが原因なのか時間がかかってしまいます。 >コンパイルに失敗してしまいました ここも具体的に書いたほうが良いです。
m.ts10806

2019/01/19 09:03

エラー解決するだけならエラー文そのままですね。コードをよく見てください。
Yuta25jp

2019/01/19 09:05

コードは全部記載しているのですが。。 すみません、勉強不足で。。
m.ts10806

2019/01/19 09:35

いえ、エラーメッセージをよく読んだ上でコードを見ればなぜエラーになっているかわかりますよと言う意味です。 さいあく、エラーメッセージで検索かければ幾らでも解決策はでてきます。
guest

回答1

0

ベストアンサー

修正ありがとうございます。
答えはエラーに書いてありますよ。
System.out.printlnの中身を目を凝らして見ると分かります。

Eitango.java:67: エラー: ']'がありません System.out.println("不正解番号は"+ V[i} + "番でした.");

あと、最後の行から2つ目の閉じカッコ前がやっぱり全角空白になっている気が…。

投稿2019/01/19 09:05

greeash

総合スコア30

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Yuta25jp

2019/01/19 09:11

とりあえずエラーを下記の一個だけにできました。 こちらのエラーはV[i]の処理がおかしいでしょうか? ↓ エラー: シンボルを見つけられません System.out.println("不正解番号は"+ V[i]+ "番でした."); ^ シンボル: 変数 i 場所: クラス Eitango エラー1個
greeash

2019/01/19 09:15

分かってよかったです。 次のエラーに関しては、「変数のスコープ Java」とかでぐぐってみると分かるかもです。
Yuta25jp

2019/01/19 09:54

下記の記述以外に変数の処理の仕方はございますか? ↓ else if (ans!=V[i]) { Q = Integer.toString(errornum); } ---- なお、エラー文は ↓ エラー: 不適合な型: StringをString[]に変換できません: Q = Integer.toString(errornum); ^ エラー1個 となりました。 回答を間違った問題の配列番号を抜き出したいです。
greeash

2019/01/19 10:06

>不適合な型: StringをString[]に変換できません: Qは配列型(String[])なのに、文字列型(String)に変換(toString)したものを代入しようとしてるからエラーが出てるのでは。 **(エラーメッセージをぐぐると、ヒントが出ますよ。)** あと、Qって見た感じ問題文用の配列な気がしますが、間違えた番号を代入して大丈夫でしょうか。
greeash

2019/01/19 10:08

答えをまるっと教えちゃうのはダメなので、めちゃめちゃ遠回しな回答になってる のはご容赦くださいm__m
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問