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

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

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

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

Q&A

解決済

2回答

2205閲覧

コマンドライン引数を入力しなかった場合の出力でエラーが出ます

masakaze

総合スコア2

Java

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

0グッド

0クリップ

投稿2022/04/24 06:09

public class Exam0531hint1{ public static void main(String[] args){ //String型のコマンドライン引数をint型に直す int inputKcal = Integer.parseInt(args[]); inputKcal = 0; if(inputKcal == 0){ System.out.println(""); System.out.println("カロリーを設定して再起動してください"); } else{ //入力するメニューNoを定義 int inputCook = 1; //入力したカロリーを上限カロリーに代入 int limitKcal = inputKcal; //料理名 String menu; //料理のカロリー int kcal = 0; //総カロリー int totalKcal = 0; while(inputCook != 0){ final String PASTA = "パスタ"; final String PIZZA = "ピザ"; final String CURRY = "カレー"; final String RAMEN = "ラーメン"; System.out.println(""); System.out.println(""); System.out.println("商品(メニューNo:料理名 カロリー)"); System.out.println("1:"+ PASTA + "600kcal"); System.out.println("2:"+ PIZZA + "800kcal"); System.out.println("3:"+ CURRY + "700kcal"); System.out.println("4:"+ RAMEN + "860kcal"); System.out.println(""); System.out.print("選択してください:"); inputCook = new java.util.Scanner ( System.in ).nextInt (); System.out.println(""); switch(inputCook){ case 0: break; case 1: menu = "パスタ"; kcal = 600; totalKcal += kcal; break; case 2: menu = "ピザ"; kcal = 800; totalKcal += kcal; break; case 3: menu = "カレー"; kcal = 700; totalKcal += kcal; break; case 4: menu = "ラーメン"; kcal = 860; totalKcal += kcal; break; default: System.out.println("正しい数値を入力してください"); System.out.println(""); break; } if(inputCook >= 5){ } else if(inputCook < 5 && totalKcal >= limitKcal ){ System.out.println(""); System.out.println("食べすぎですのでキャンセルさせて頂きます。"); totalKcal -= kcal; System.out.println("合計:" + totalKcal + "kcal"); } else{ System.out.println("合計:" + totalKcal + "kcal"); } } System.out.println("お食事ありがとうございました。"); } } }

<実現したいこと>
コマンドライン引数を入力して上限カロリーを設定できるようにして、コマンドライン引数が入力されてない場合は、『カロリーを設定して再起動してください』と表示させたいです。

<発生している問題・エラーメッセージ>
コマンドライン引数を入力したときは、その値を上限カロリーとして出力できるが、コマンドライン引数を入力しなかった場合にException in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 0 out of bounds for length 0とエラーが出てしまいます。

<使っているツールのバージョンなど補足情報>
サクラエディタ2.2.0.1を使用

質問内容は以上となります。
ご教示いただける方がいらっしゃいましたら幸いです。

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

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

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

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

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

guest

回答2

0

int inputKcal = Integer.parseInt(args[]);

文法的に間違っています

投稿2022/04/24 06:49

y_waiwai

総合スコア87749

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

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

0

ベストアンサー

引数が一つ以上指定されているかを判定するなら

Java

1if (args.length > 0)

とします。
引数が一つ以上指定されているのを確認したうえで、1番目の引数をintとして取得したいのなら、

Java

1int inputKcal = Integer.parseInt(args[0]);

とします。

投稿2022/04/24 06:22

nukasa

総合スコア406

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

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

masakaze

2022/04/24 22:50

ご回答ありがとうございます。 エラー表示なくなって出力できました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問