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

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

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

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

Q&A

2回答

1883閲覧

入力した名前のリストを管理するプログラム(java)

denon

総合スコア6

Java

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

0グッド

0クリップ

投稿2018/03/24 06:19

編集2018/03/24 09:12

前提・実現したいこと

javaでメニュー番号を指定し、その番号のメニューを実行する名前登録プログラムを作成したいのですが、わからない事だらけなので教えていただきたいです。
(お手数ですが、解答時にプログラムも記述して頂けると助かります。)

プログラムの具体的な内容は
メニュー一覧を表示⇒キーボードからメニュー番号を入力⇒入力された番号のメニューを実行する。を繰り返し行い、メニュー番号0を入力すると終了する。というものです。

###動作概要

1: 名前登録(キーボードから名前を入力、登録件数は最大5件)
2: 名前一覧表示
3: 登録削除(登録されている最後の名前を1件だけ削除)
4: 全削除
0: 終了
コマンド番号を指定 :

初回起動で以上のメニューを表示し、番号入力待ちになる。
1を入力、名前を登録 ⇒メニュー一覧を表示し、次のコマンド待ち。
2を入力、登録されている名前をリスト表示 ⇒メニュー一覧を表示し、次のコマンド待ち。
3を入力、登録されている最後の名前を1件だけ削除 ⇒メニュー一覧を表示し、次のコマンド待ち。
4を入力、登録されている名前を全削除 ⇒メニュー一覧を表示し、次のコマンド待ち。
0を入力、プログラムを終了。

試したこと

自分で色々調べたらmapを利用して同じようなプログラミングを見つけたのですが、最近、配列やメソッドの使い方を学習し始めた自分にはさっぱりでしたので、mapを使わずにメソッドや配列を使った方法で作成したいと思っています。

補足情報(言語)

java

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

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

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

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

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

LouiS0616

2018/03/24 06:22

まずはハリボテでも良いのでコードを書いてはいかがですか。実際の登録機能は一旦置いておいて、入力を受け取って解釈するためだけのプログラムとかです。
Udomomo

2018/03/24 06:36

JavaとJavaScriptは全く別の言語なので、Javaで書きたいならJavaScriptのタグを消しましょう。
guest

回答2

0

記録用の配列をString[] dataとします。

初期化処理

Java

1data = new String[登録上限]; 2登録件数を0に初期化;

1: 名前登録(キーボードから名前を入力、登録件数は最大5件)

Java

1if(登録件数が既に五件だったら) { 2 System.err.println("上限だよ"); 3 return; 4} 5 6String name = 名前の入力を受け付ける; 7data[登録件数] = name; 8登録件数を1増やす;

2: 名前一覧表示

Java

1for(int i = 0; i < 登録件数; ++i) { 2 System.out.println(data[i]); 3}

3: 登録削除(登録されている最後の名前を1件だけ削除)
登録件数を1減らす。

4: 全削除
登録件数を0にする。


今回は登録削除の操作の機能が限定されているので、ただの配列でも良さそうですね。
もし『選んで削除』みたいな機能が増えるのなら、Listの使い方を勉強した方が良いです。

それぞれの処理はメソッドに切り分けるとすっきりします。

投稿2018/03/24 08:32

LouiS0616

総合スコア35660

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

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

0

この要件ならmapを使わなくても可能です。

配列を使ってください。

なぜやりたいことが「mapを使った場合」しかないかわかりますでしょうか?

配列だと事前( 宣言時に ) に要素数を指定しないといけませんね。

そうすると要素数5としたら 5個分しか入れないですよね。

それだと汎用性も実用性もなくなるので、(たぶん内部ではリスト構造になっていると思われる) mapで実現しているのです。

なので、配列で要素数は最大値である5 でやってみてください。

投稿2018/03/24 06:37

BeatStar

総合スコア4958

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問