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

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

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

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

Q&A

解決済

1回答

1236閲覧

出力するときに二列同時に出てきてしまいます。

ball2

総合スコア16

Java

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

0グッド

0クリップ

投稿2018/10/23 04:30

前提・実現したいこと

Javaで個人情報を入力するというシステムを作っています。

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

出力したいときに本当なら一列ずつ出力したいのですが二列同時に出てきてしまいます。

該当のソースコード

import java.util.Scanner;
public class Part4 {
public static void main(String[] args) {
Scanner myScanner = new Scanner(System.in);
String[] names = new String[5];
int person;
int[] age = new int[5];
int[] phoneNum = new int[5];
String[] EmailAddress = new String[5];
String[] homeaddress = new String[5];
String[] faveMeal = new String[5];
String[] dislikeMeal = new String[5];
String[] AllergiesForMeal = new String[5];
int[] height = new int[5];
String[] nationality = new String[5];
// accept input
do {
System.out.println("Press one number from 1 to 5 if you want to make a profile for person 1 to 5.");
person = myScanner.nextInt();
switch (person) {
case 1:
System.out.println("Enter your name: ");
names[0] = myScanner.nextLine();

System.out.println("Enter your age: "); age[0] = myScanner.nextInt(); System.out.println("Enter your e-mail address: "); EmailAddress[0] = myScanner.nextLine(); System.out.println("Enter home address: "); homeaddress[0] = myScanner.nextLine(); System.out.println("What do you like to eat?"); faveMeal[0] = myScanner.nextLine(); System.out.println("What do you not want to eat?"); dislikeMeal[0] = myScanner.nextLine(); System.out.println("Do you have allegies for food? Enter the food: "); AllergiesForMeal [0] = myScanner.nextLine(); System.out.println("Enter height(m): "); height[0] = myScanner.nextInt(); System.out.println("What's your nationality? Enter it: "); nationality[0] = myScanner.nextLine(); break; case 2: System.out.println("Enter your name: "); names[1] = myScanner.nextLine(); System.out.println("Enter your age: "); age[1] = myScanner.nextInt(); System.out.println("Enter your e-mail address: "); EmailAddress[1] = myScanner.nextLine(); System.out.println("Enter home address: "); homeaddress[1] = myScanner.nextLine(); System.out.println("What do you like to eat?"); faveMeal[1] = myScanner.nextLine(); System.out.println("What do you not want to eat?"); dislikeMeal[1] = myScanner.nextLine(); System.out.println("Do you have allegies for food? Enter the food: "); AllergiesForMeal [1] = myScanner.nextLine(); System.out.println("Enter height(m): "); height[1] = myScanner.nextInt(); System.out.println("What's your nationality? Enter it: "); nationality[1] = myScanner.nextLine(); break; case 3: System.out.println("Enter your name: "); names[2] = myScanner.nextLine(); System.out.println("Enter your age: "); age[2] = myScanner.nextInt(); System.out.println("Enter your e-mail address: "); EmailAddress[2] = myScanner.nextLine(); System.out.println("Enter home address: "); homeaddress[2] = myScanner.nextLine(); System.out.println("What do you like to eat?"); faveMeal[2] = myScanner.nextLine(); System.out.println("What do you not want to eat?"); dislikeMeal[2] = myScanner.nextLine(); System.out.println("Do you have allegies for food? Enter the food: "); AllergiesForMeal [2] = myScanner.nextLine(); System.out.println("Enter height(m): "); height[2] = myScanner.nextInt(); System.out.println("What's your nationality? Enter it: "); nationality[2] = myScanner.nextLine(); break; case 4: System.out.println("Enter your name: "); names[3] = myScanner.nextLine(); System.out.println("Enter your age: "); age[3] = myScanner.nextInt(); System.out.println("Enter your e-mail address: "); EmailAddress[3] = myScanner.nextLine(); System.out.println("Enter home address: "); homeaddress[3] = myScanner.nextLine(); System.out.println("What do you like to eat?"); faveMeal[3] = myScanner.nextLine(); System.out.println("What do you not want to eat?"); dislikeMeal[3] = myScanner.nextLine(); System.out.println("Do you have allegies for food? Enter the food: "); AllergiesForMeal [3] = myScanner.nextLine(); System.out.println("Enter height(m): "); height[3] = myScanner.nextInt(); System.out.println("What's your nationality? Enter it: "); nationality[3] = myScanner.nextLine(); break; case 5: System.out.println("Enter your name: "); names[4] = myScanner.nextLine(); System.out.println("Enter your age: "); age[4] = myScanner.nextInt(); System.out.println("Enter your e-mail address: "); EmailAddress[4] = myScanner.nextLine(); System.out.println("Enter home address: "); homeaddress[4] = myScanner.nextLine(); System.out.println("What do you like to eat?"); faveMeal[4] = myScanner.nextLine(); System.out.println("What do you not want to eat?"); dislikeMeal[4] = myScanner.nextLine(); System.out.println("Do you have allegies for food? Enter the food: "); AllergiesForMeal [4] = myScanner.nextLine(); System.out.println("Enter height(m): "); height[4] = myScanner.nextInt(); System.out.println("What's your nationality? Enter it: "); nationality[4] = myScanner.nextLine(); break; case 0: System.out.println("Quit"); break; }

} while (person != 0);
}
}

出力するとこのようになります
Press one number from 1 to 5 if you want to make a profile for person 1 to 5.
1
Enter your name:
Enter your age:

名前を入力することができません。

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

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

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

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

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

guest

回答1

0

ベストアンサー

Java

1person = myScanner.nextInt();

で整数値を1[Enter]と入力していますが、
おそらく1を読み込んだ直後で読み込みが止まっていて、
つまりは次の入力で行末が読み取られる状態となっているようです。

Java

1names[0] = myScanner.nextLine();

で止まっていたポイントから行末まで、つまり行末情報だけが読み取られた状態なので
ただEnterが押されたと同じ情報が読み取られたのかと推測します。

数値情報もnextLine()で読み込み、整数変換すれば良いかと思います。

投稿2018/10/23 04:47

dice142

総合スコア5158

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

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

ball2

2018/10/23 04:55

数値情報のところをnextLine()に変えて見たのですがそれでも正常に作動してくれません。
dice142

2018/10/23 04:56

正常に作動しないとは、同じ現象になるということですか?
退会済みユーザー

退会済みユーザー

2018/10/23 05:11

ball2さん、person = myScanner.nextLine(); としていませんか? >数値情報もnextLine()で読み込み、整数変換すれば良いかと思います。 とあるように、 person = Integer.parseInt(myScanner.nextLine()); としないとだめですよ。
ball2

2018/10/23 05:45

ppnさん、ありがとうございました。person = Integer.parseInt(myScanner.nextLine()); で正しく動きました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問