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

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

新規登録して質問してみよう
ただいま回答率
85.46%
標準入力

標準入力(stdin)は、プログラムが標準的に用いるデータ入力元。リダイレクトしない限り、プログラムを起動した端末のキーボードが標準入力になります。UNIX系OSやC言語に実装されて普及した概念ですが、他のOSや言語も含めた総称としても使われます。

Java

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

Q&A

解決済

1回答

1173閲覧

Java 標準入力 プログラムが終了してしまう

bubu_45

総合スコア3

標準入力

標準入力(stdin)は、プログラムが標準的に用いるデータ入力元。リダイレクトしない限り、プログラムを起動した端末のキーボードが標準入力になります。UNIX系OSやC言語に実装されて普及した概念ですが、他のOSや言語も含めた総称としても使われます。

Java

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

0グッド

0クリップ

投稿2021/11/08 07:16

編集2021/11/08 07:29

前提・実現したいこと

新規作成をすると、そこでプログラムが終了してしまいます。
お力添え頂ければ幸いです。

該当のソースコード

package kadai18; import java.util.Arrays; import java.util.HashMap; import java.util.Map; import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; public class K06 { public static void main(String[] args) { /** * 社員番号と名前をMapに格納し、表示します。 */ // TODO 自動生成されたメソッド・スタブ Pattern p = Pattern.compile("-?\d+"); Map<String, Member> memberMap = new HashMap<String, Member>(); Scanner sc = new Scanner(System.in); System.out.println("モード選択" + "\n" + "新規追加 -i" + "\n" + "変更 -u" + "\n" + "削除 -d" + "\n" + "一覧表示 -v" + "\n" + "ソート -s" + "\n" + "プログラム終了 -e"); String s = sc.next(); if (s.equals("-i")) { s = ""; sc = new Scanner(System.in); s = sc.next(); String[] splitMap = s.split(","); Matcher matcher = p.matcher(splitMap[0]); if(matcher.find()) { if (memberMap.containsKey(splitMap[0])) { s = ""; System.out.println(splitMap[0] + "はすでに入力されています"); s = sc.next(); if (s.equals("-m")) { s = ""; System.out.println("モード選択" + "\n" + "新規追加 -i" + "\n" + "変更 -u" + "\n" + "削除 -d" + "\n" + "一覧表示 -v" + "\n" + "ソート -s" + "\n" + "プログラム終了 -e"); s = sc.next(); }else { Member m = new Member(splitMap[1], splitMap[2]); memberMap.put(splitMap[0], m); s = ""; sc = new Scanner(System.in); s = sc.next(); if (s.equals("-m")) { s = ""; System.out.println("モード選択" + "\n" + "新規追加 -i" + "\n" + "変更 -u" + "\n" + "削除 -d" + "\n" + "一覧表示 -v" + "\n" + "ソート -s" + "\n" + "プログラム終了 -e"); s = sc.next(); } } } } } if (s.equals("-u")) { System.out.println("社員番号を入力して下さい。"); s = ""; s = sc.next(); if (memberMap.containsKey(s)) { System.out.println("変更後の名前と部署名を「名前,部署名」で入力して下さい。"); s = ""; s = sc.next(); String[] alteredMap = s.split(","); Member m1 = new Member(alteredMap[0], alteredMap[1]); memberMap.put(s, m1 ); }else { System.out.println("該当するデータはありません。"); s = ""; sc = new Scanner(System.in); s = sc.next(); if (s.equals("-m")) { s = ""; System.out.println("モード選択" + "\n" + "新規追加 -i" + "\n" + "変更 -u" + "\n" + "削除 -d" + "\n" + "一覧表示 -v" + "\n" + "ソート -s" + "\n" + "プログラム終了 -e"); s = sc.next(); } } } if (s.equals("-d")) { System.out.println("社員番号を入力して下さい。"); s = ""; s = sc.next(); if (memberMap.containsKey(s)) { System.out.println("社員番号:" + s + " " + memberMap.get("s1").toString()); System.out.println("このデータを削除する場合は「y」、削除しない場合は「n」を入力して下さい。"); s = ""; s = sc.next(); if(s.equals("y")) { memberMap.remove("s1"); }else if(s.equals("n")) { s =""; s = sc.next(); } } } if (s.equals("-v")) { s = ""; for (Map.Entry<String, Member> entry : memberMap.entrySet()) { System.out.println("社員番号:" + entry.getKey() + " " + entry.getValue().toString()); } System.out.println("表示完了"); s = sc.next(); } if (s.equals("-m")) { s = ""; System.out.println("モード選択" + "\n" + "新規追加 -i" + "\n" + "変更 -u" + "\n" + "削除 -d" + "\n" + "一覧表示 -v" + "\n" + "ソート -s" + "\n" + "プログラム終了 -e"); s = sc.next(); } if (s.equals("-s")) { Object[] mapkey = memberMap.keySet().toArray(); Arrays.sort(mapkey); } if (s.equals("-e")) { System.exit(0); } } }

package kadai18;

public class Member {
/**
* 名前、部署を設定します。
* @param name 名前
* @param department 部署
*/
private String name;
private String department;

public Member(String name, String department) { this.name = name; this.department = department; } public String getName() { return name; } public String getDepartment() { return department; } public void setName(String name) { this.name = name; } public void setDepartment(String department) { this.department = department; } public String toString() { return "名前:" + this.getName() + " " + "部署:" + this.getDepartment(); }

}

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

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

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

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

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

y_waiwai

2021/11/08 07:24

このままではコードが読みづらいので、質問を編集し、<code>ボタンを押し、出てくる’’’の枠の中にコードを貼り付けてください
guest

回答1

0

自己解決

if文ではなく、while文を使うことによって、解決致しました。

投稿2021/11/08 07:43

bubu_45

総合スコア3

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問