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

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

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

Microsoft Windows 7は過去にリリースされたMicrosoft WindowsのOSであり、Windows8の1代前です。2009年の7月にリリースされ販売されました。Windows7の前はWindowsVistaで、その更に3年前にリリースされました。

Java

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

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Q&A

3回答

8402閲覧

Javaを使った性格診断プログラムを作りたいです。

srkn1589

総合スコア6

Windows 7

Microsoft Windows 7は過去にリリースされたMicrosoft WindowsのOSであり、Windows8の1代前です。2009年の7月にリリースされ販売されました。Windows7の前はWindowsVistaで、その更に3年前にリリースされました。

Java

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

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

0グッド

1クリップ

投稿2017/05/01 02:40

###簡単な性格診断プログラムを作りたいです。
Java初心者です。
Javaを使って、簡単な性格診断プログラムを作ろうと思っています。

1~4の数字で入力して回答してもらう質問を5問用意し、
回答された数字の合計値(5~20)によって、
Aパターン(5~8の場合)、Bパターン(9~12)、Cパターン(13~16)、Dパターン(17~20)の
4つのパターンに分かれるようにしたいです。

if文による診断結果の分岐やtry/catchでのエラー(数字以外が入力された場合等)処理を考えているのですが、
具体的にどのようなプログラムにすればよいか、アイデアが浮かびません。

ぜひ助言を賜りたいです。

###補足情報(Java8/eclipse)

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

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

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

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

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

guest

回答3

0

「どのような」も何も…
まずはその通りに組んでみたらいいじゃないですか。
いきなりtry-catchとか考えると難しいので、まずは例外が発生しないという前提で書いてみては?

投稿2017/05/01 02:44

swordone

総合スコア20651

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

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

0

簡単ですがつくってみました(^^)
ちなみに数字以外が入力されたときはInteger.parseInt(str)が勝手にエラーをはいてくれますよ
お互いに初心者どうしがんばりましょう!

Java

1import java.util.Scanner; 2 3public class Shindan{ 4 5 int kaitou(String str) 6 // 文字列を数字に変換してreturnする関数 7 { 8 int ret = Integer.parseInt(str); 9 10 // 入力された値が適切な範囲内でないなら例外を投げる 11 if(ret < 1 || ret > 4) throw new IllegalArgumentException("入力された値は範囲外"); 12 return ret; 13 } 14 15 public static void main(String[] args){ 16 Scanner cin = new Scanner(System.in); 17 Shindan shindan = new Shindan(); 18 int ans = 0; 19 String kekka = ""; 20 21 try{ 22 for(int i=0;i<5;i++){ 23 // 診断結果を加算 24 ans += shindan.kaitou(cin.next()); 25 } 26 }catch(NumberFormatException e){ 27 e.printStackTrace(); 28 System.exit(1); // 強制終了 29 }catch(IllegalArgumentException e){ 30 e.printStackTrace(); 31 System.exit(1); // 強制終了 32 } 33 34 if(ans <= 8) kekka = "パターンA"; 35 else if(ans <= 12) kekka = "パターンB"; 36 else if(ans <= 16) kekka = "パターンC"; 37 else if(ans <= 20) kekka = "パターンD"; 38 39 System.out.println(kakka); 40 } 41} 42 43

投稿2017/05/01 12:23

chankane

総合スコア139

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

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

King_of_Flies

2017/05/02 00:16

最後のprintlnの出力結果で笑ってしまった・・・。 今までの計算無意味になっちゃうよぉ・・・
chankane

2017/05/02 13:29

気づきませんでした(笑) 気を付けます。
guest

0

try{
int kaitoukekka1 = 入力値の数値;
int kaitoukekka2 = 入力値の数値;
int kaitoukekka3 = 入力値の数値;
int kaitoukekka4 = 入力値の数値;
}catch(Exception ex){
return ex;
}

result = kaitoukekka1+kaitoukekka2+kaitokekka3+kaitoukekka4

if(result > 4 and result < 9){
return ("パターンA");
}else if(result > 8 and result < 13){
return ("パターンB);
}else//略

適当ですが。

投稿2017/05/01 02:52

King_of_Flies

総合スコア382

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問