パソコン

キーボードからの入力を文字列ではなく数値として受け取る。そして更なる分岐へ

前回はこちら

前回に引き続いての今回は、キーボードからの入力を最初から数値として受け取る方法を考えます。文字変数を現すStringとなっている部分を数値変数intに変えて……

import java.util.*;
public class KaimonoP{
public static void main(String[] args){
System.out.println("牛乳はいくつありますか?(数字を入力してください)");

Scanner scanner =new Scanner(System.in);

//Stringだった部分をintに変更。変換部分は不要なので削除。
int intValue=scanner.nextInt();


if(intValue==0){
System.out.println("牛乳はありませんでした。仕方ありません、帰りましょう。");
System.out.println("家に帰ったあなたは奥さんに言われました。「どうして何も買ってこなかったの?」");
System.out.println("あなたは答えました。「売っていなかったんだ」");
System.out.println("「じゃあ仕方ないわね」奥さんは納得したようです。");

}else if(intValue>=1){

System.out.println("牛乳は"+intValue+"つあります");
System.out.println("牛乳を1つ買って帰りました");
System.out.println("奥さんは言いました。「お疲れ様。卵は無かったのね」");
}
}
}

 あっさりできてしまいましたが、実行しても見た目は変わらない(笑)文字列を入力されるとエラーになってしまうのは仕様です。数字以外を受け付けなくする方法ってあるんでしょうか?繰り返されるprintlnがしつこくてうるさい気がします。一つにまとめて途中で改行する方法は……半角の¥n?

import java.util.*;

public class KaimonoP{
public static void main(String[] args){

System.out.println("牛乳はいくつありますか?(数字を入力してください)");

Scanner scanner =new Scanner(System.in);
int intValue=scanner.nextInt();

if(intValue==0){
System.out.println("牛乳はありませんでした。仕方ありません、帰りましょう。\n家に帰ったあなたに奥さんは言いました。\n「どうして何も買ってこなかったの?」\n「牛乳が売っていなかったんだ」\n「じゃあ仕方ないわね」\n奥さんは納得したようです。");

}else if(intValue>=1){

System.out.println("牛乳は"+intValue+"つあります");
System.out.println("牛乳を1つ買ってきました\n奥さんは言いました。「お疲れ様。卵は無かったのね」");
}
}
}

 とりあえずこうかな。アメリカンジョークっぽい文章をと意識しているんですが難しいな。入力された数値によってはジョークではなくなってしまいますし。それでは卵の数を入力してもらって、と。

import java.util.*;

public class KaimonoP{
public static void main(String[] args){

System.out.println("ある日、あなたは奥さんに買い物を頼まれました。\n牛乳をひとつ買ってきて。卵があったらむっつお願い。\nあなたは買い物に出かけました。");

System.out.println("お店に牛乳はいくつありますか?(数字を入力してください)");
Scanner scanner =new Scanner(System.in);

//判りやすくするために、変数名を変更します。
int intMilk=scanner.nextInt();

System.out.println("お店に卵はいくつありますか?(数字を入力してください)");
//卵の数を受け取る変数名と数字を格納する変数名を設定します。
Scanner scanner2 =new Scanner(System.in);
int intEgg=scanner2.nextInt();

if(intMilk==0){
System.out.println("牛乳はありませんでした。仕方ありません、帰りましょう。\n家に帰ったあなたに奥さんは言いました。\n「どうして何も買ってこなかったの?」\n「牛乳が売っていなかったんだ」\n「じゃあ仕方ないわね」\n奥さんは納得したようです。");

}else if(intMilk>=1&&intEgg>=1){
System.out.println("牛乳は"+intMilk+"個あります\n卵は"+intEgg+"個あります");
System.out.println("あなたは牛乳を6つ買ってきました\n奥さんに訊かれました。「どうしてこんなに牛乳を買ってきたの?」\n「だって、卵があったから……」");
}else{
System.out.println("牛乳は"+intMilk+"つあります");
System.out.println("牛乳を1つ買ってきました\n奥さんは言いました。「お疲れ様。卵は無かったのね」");
}
}
}

 一応は元のアメリカンジョークの通りにできましたが、あちこちおかしなところがありますね。卵が1つでもあったら、入力された牛乳の数にかかわらず6つ買ってきてしまっています。これをまた条件分岐させるのか……というところで今回ここまで!

つづく!!

ここから先は

0字

¥ 100

この記事が気に入ったらサポートをしてみませんか?