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

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

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

integerは、一般的に整数を表します。プラスやマイナス、ゼロもなりうる全ての数です。(例 : -2, -1, 0, 1, 2...)

Java

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

String

Stringは、ゼロ以上の文字から連続してできた文字の集合を扱うデータ型です。基本的にテキストを表すために使われます。

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

Q&A

解決済

1回答

2765閲覧

HashMapを使ってじゃんけんがしたい

aomiume

総合スコア1

integer

integerは、一般的に整数を表します。プラスやマイナス、ゼロもなりうる全ての数です。(例 : -2, -1, 0, 1, 2...)

Java

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

String

Stringは、ゼロ以上の文字から連続してできた文字の集合を扱うデータ型です。基本的にテキストを表すために使われます。

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

0グッド

0クリップ

投稿2020/04/25 03:41

前提・実現したいこと

Javaでじゃんけんを作るシステムです。
条件としてHashMap<Integer,String>を使ってじゃんけんの要素を保持します。

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

じゃんけんの要素を代入しようとしたらエラーが発生しました。

Basic8.java:20: エラー: <identifier>がありません map.put(1,"グー"); ^ Basic8.java:20: エラー: 型の開始が不正です map.put(1,"グー"); ^ Basic8.java:21: エラー: <identifier>がありません map.put(2,"チョキ"); ^ Basic8.java:21: エラー: 型の開始が不正です map.put(2,"チョキ"); ^ Basic8.java:22: エラー: <identifier>がありません map.put(3,"パー"); ^ Basic8.java:22: エラー: 型の開始が不正です map.put(3,"パー");

該当のソースコード

Java

1import java.io.BufferedReader; 2import java.io.InputStreamReader; 3import java.io.*; 4import java.util.HashMap; 5import java.util.Map; 6import java.util.*; 7 8 9class Basic8{ 10 public static void main(String[] args) { 11 Jyanken jyanken = new Jyanken(); 12 } 13} 14 15class Jyanken{ 16 InputStreamReader isr = new InputStreamReader(System.in); 17 BufferedReader br = new BufferedReader(isr); 18 HashMap<Integer,String> map = new HashMap<Integer,String>(); 19 20 map.put(1,"グー"); 21 map.put(2,"チョキ"); 22 map.put(3,"パー"); 23 24 int enemy; 25 int myhand; 26 public Jyanken(){ 27 this.input(); 28 } 29 30 public void input(){ 31 this.myhand = this.getInputNumber(); 32 this.enemy(); 33 this.enemyHand(enemy); 34 this.hantei(); 35 } 36 37 private int getInputNumber(){ 38 try{ 39 System.out.println("1:グー 2:チョキ 3:パー を入力してください"); 40 int number = Integer.parseInt(br.readLine()); 41 if(number > 3){ 42 throw new NumberFormatException(); 43 } 44 return number; 45 }catch(IOException | NumberFormatException e){ 46 System.out.println("不正な値が入力されました"); 47 } 48 return this.getInputNumber(); 49 } 50 51 public void hantei() { 52 int c = (myhand - enemy + 3) % 3; 53 if(c == 0){ 54 System.out.println("あいこでしょ"); 55 this.input(); 56 }else if(c == 2){ 57 System.out.println("勝ち"); 58 getInputNumber1(); 59 }else{ 60 System.out.println("負け"); 61 getInputNumber1(); 62 } 63 } 64 65 public int enemy(){ 66 Random random = new Random(); 67 this.enemy = random.nextInt(3); 68 return enemy; 69 } 70 71 public void enemyHand(int count){ 72 map.forEach((key) ->{ 73 if(key == count){ 74 return map.get(key); 75 } 76 }); 77 } 78 79 private int getInputNumber1(){ 80 try{ 81 System.out.println("1:もう一度 2:終了"); 82 int number = Integer.parseInt(br.readLine()); 83 if(number == 2){ 84 85 }else if(number == 1){ 86 input(); 87 }else{ 88 throw new NumberFormatException(); 89 } 90 91 return number; 92 }catch(IOException | NumberFormatException e){ 93 System.out.println("不正な値が入力されました"); 94 } 95 return this.getInputNumber(); 96 } 97}

試したこと

ネットを調べてHashMapの使い方、エラーメッセージを調べましたが、なぜputできないのかわかりませんでした。
初心者なりに手探りでコードを書いてガタガタですが、何かアドバイスを頂けると幸いです。

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

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

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

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

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

guest

回答1

0

ベストアンサー

map.put(...); のような式文は、クラス直下には置けません。
メソッド内に書くか、あるいは次のように初期化ブロックを利用する必要があります。

Java

1HashMap<Integer,String> map = new HashMap<Integer,String>(); 2{ 3 map.put(1,"グー"); 4 map.put(2,"チョキ"); 5 map.put(3,"パー"); 6}

次のようにMap.ofメソッドを使っても良いでしょう。

Java

1Map<Integer,String> map = Map.of( 2 1, "グー", 2, "チョキ", 3, "パー" 3);

投稿2020/04/25 03:45

編集2020/04/25 04:01
LouiS0616

総合スコア35658

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

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

aomiume

2020/04/27 01:26

分かりやすい回答ありがとうございました! 無事に実装できました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問