アプリ版:「スタンプのみでお礼する」機能のリリースについて

Java プログラム

public class Main {
public static void main(String[] args) {
     int receiveNumber;
String display;

receiveNumber = Integer.parseInt(args[0]);

display = " ";
for( int i = 0 ;i < receiveNumber; i++){
display += " * ";

System.out.println(display);




このプログラムを書くとArrayIndexOutOfBoundsExceptionとエラーが発生します。
調べても直す方法がわからないので教えていただけると幸いです。
よろしくお願いします。

A 回答 (3件)

直接の原因は


args.length == 0 の場合に args[0] を評価したことで
配列の添え字が範囲外です(array index out of bounds)
の例外(exception)が発生したようです

参考)
https://docs.oracle.com/javase/jp/17/docs/api/ja …

エラーなり例外が発生した場所が明記されているはずなので
その場所で実行を止めてデバックをすることで
なぜ期待する値が来なかったのか根本原因を追究しましょう
    • good
    • 1
この回答へのお礼

助かりました

丁寧な解決をありがとございます。

実は同じプログラムをIntelliJ IDEAで実行すると上記のエラーメッセージは出ましたが,

サクラエディタで書いて OS C: の中の フォルダを作り保存し,コマンドプロンプトで実行すると実行結果に成功しました。
IntelliJ の使い方の問題だと思われます。

お礼日時:2023/08/11 13:34

> 調べても直す方法がわからないので教えていただけると幸いです。



いや、このプログラムは正しいでしょ。
実行方法が間違ってんじゃないの?
例えば「5回繰り返したい」場合、

java Main 5

として実行する。

argsは「コマンドライン引数」つって、端末でプログラム名に与える引数になる。
上の例だと「5」ってのがそのコマンドライン引数だ。

コマンドライン引数:
https://www.fenet.jp/java/column/java_tips/6639/
    • good
    • 1
この回答へのお礼

ありがとう

ありがとうございます。やっぱり実行時の問題でした。

お礼日時:2023/08/11 11:42

プログラムを書く「だけ」でエラーが出るの?

    • good
    • 1
この回答へのお礼

ありがとう

いや,実行時にエラーが出ましたので実行時の問題でした。ありがとうございます。

お礼日時:2023/08/11 11:43

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!