コマンドライン引数を用いた足し算プログラム

このQ&Aのポイント
  • コマンドライン引数を用いて足し算を行うプログラムです。
  • 引数の数と合計値を出力します。
  • プログラムは正常に動作しており、改善点は特にありません。
回答を見る
  • ベストアンサー

コマンドライン引数を用いて。

コマンドライン引数を用いて足し算をさせるプログラムです。 class goukei{ public static void main(String args[]){ int i, count; int sum = 0; int a[]; count = args.length; for(i=0; i<args.length; i++){ int arg_i = Integer.parseInt(args[i]); sum = sum + arg_i; } System.out.println("引数の数は" + count); System.out.println("合計は" + sum); } } と考えたのですが、もっとこうしたほうがいいという部分があれば教えてください。 一応これでできているとは思うのですがイマイチ自信がありません・・・。

  • Java
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • chi-kon
  • ベストアンサー率43% (58/132)
回答No.1

数字を入力されるとは限らないので 例外処理もしくはチェック処理をいれる。

usui323
質問者

お礼

解答ありがとうございました。 なるほど。確かにそうですね。 考えてみたいと思います。

関連するQ&A

  • 最大値と最小値の求め方

    以下はコマンドライン引数で任意の数の整数を受け取って、合計・平均・最大・最小を求めようとしたソースです。 しかし、実行したら最大値と最小値が正しく出ませんでした。 if文が間違っているのかもしれないと思ったのですが、はっきりと『ここが間違っている』という場所が分かりません。 どうかご指摘お願いします。 class Choco { public static void main (String[] args) { int i; int sum = 0; int max; int min; for ( i=0; i<args.length; i++) sum += Integer.parseInt(args[i]); double ave = sum/args.length; max = args.length; min = args.length; if (args.length>max){ max = args.length; } if (args.length<min){ min = args.length; } System.out.println("合計は" + sum + "です。"); System.out.println("平均は" + ave + "です。"); System.out.println("最大値は" + max + "です。"); System.out.println("最小値は" + min + "です。"); } }

    • ベストアンサー
    • Java
  • プログラムの平均値の出し方。

    プログラムの平均値の出し方。 public class pazu{ public static void main(String[] args){ int sum =0,saidai; System.out.println("コマンドラインパラメータは"+args.length+"個です"); for(int i=0;i<args.length;i++){ int x=Integer.parseInt(args[i]); if(pazu.is_even(x)) System.out.println(args[i]+"は偶数です"); else System.out.println(args[i]+"は奇数です"); sum+=x; } saidai=pazu.max(args); System.out.println("合計:"+sum); System.out.println("最大:"+saidai); } static boolean is_even(int number){ return number%2==0; } static int max(String[] number){ int max =0; for(int i=0;i<number.length;i++){ if(max<Integer.parseInt(number[i])){ max=Integer.parseInt(number[i]); } } return max; } } このプログラムで数値の奇遇、合計値、最大値までは出せたのですが平均値の出し方がわかりません。 どこに何を入れればいいかを教えてください。お願いします。

  • javaプログラミングの質問です。

    プログラムで数値の奇遇、合計値、最大値までは出せたのですが平均値の出し方がわかりません。 どこに何を入れればいいかを教えてください。お願いします。 public class pazu{ public static void main(String[] args){ int sum =0,saidai; System.out.println("コマンドラインパラメータは"+args.length+"個です"); for(int i=0;i<args.length;i++){ int x=Integer.parseInt(args[i]); if(pazu.is_even(x)) System.out.println(args[i]+"は偶数です"); else System.out.println(args[i]+"は奇数です"); sum+=x; } saidai=pazu.max(args); System.out.println("合計:"+sum); System.out.println("最大:"+saidai); } static boolean is_even(int number){ return number%2==0; } static int max(String[] number){ int max =0; for(int i=0;i<number.length;i++){ if(max<Integer.parseInt(number[i])){ max=Integer.parseInt(number[i]); } } return max; } }

    • ベストアンサー
    • Java
  • 足し算するプログラム

    タイトルの通りですが足し算をするプログラムを書いてみました。 第一引数を第二引数を足し算するのですが引数に「001」や「002」などの数字が入力された時に足し算した結果として素直に「00*」と足し算が出来ません。何かいい方法は無いでしょうか?教えてください。 import java.text.*; class Tashizan { public static void main(String[] args) { try { if(args.length == 0) { System.out.println("引数を整数値で入力して下さい。"); } else if(args.length == 1) { System.out.println("引数を整数値で2つ入力して下さい。"); } else if(args.length == 2) { int a = Integer.parseInt(args[0]); int b = Integer.parseInt(args[1]); if(a <= 999999999 && b <= 999999999) { int wa = a + b; System.out.println(a + "+" + b + "の和は" + wa + "です。"); } else { System.out.println("入力した桁数を9桁以下か確認してください。"); } } else { System.out.println("引数は整数値で2つ入力して下さい。"); } } catch(NumberFormatException nfe) { System.out.println("整数値を2つ入力して下さい。"); } catch(Exception e) { System.out.println(e + "エラー発生!処理を終了します。"); } } }

    • ベストアンサー
    • Java
  • c# コマンドラインから引数の指定の仕方

    c#を勉強している初心者です。 入門書やネットで検索してもコマンドラインから引数の指定の仕方が わかりません。 次のように書いた後 class CommandLine {    static void Main(string[] args)     {        Console.WriteLine("parameter count = {0}", args.Length);        for (int i = 0; i < args.Length; i++)        {           Console.WriteLine("Arg[{0}] = [{1}]", i, args[i]);        }     } } デバックなしで開始 → 続行するには何かキーを押してください で終わってしまいます。 いつ、どのようにしてコマンドラインから指定(書き込む?)のですか? よろしくお願いします。

  • javaのコマンドライン引数について

    このプログラムをベースにして、配列をコマンドライン引数で渡せるようにしたいのですが、どうすれば良いのでしょうか。教えてください。 public class Test { public static void main(String[] args){ int[] numbers = {14,8,1,5,0,2,2,5,8,50}; System.out.print("配列中の最大値:"+maxNumber(numbers)); } static int maxNumber(int[] numbers){ int max = 0; for(int i=0; i<numbers.length;i++){ if(max < numbers[i]){ max = numbers[i]; } } return max; } }

    • ベストアンサー
    • Java
  • 【Java】複数の引数の数値と文字列の判定

    Javaについてです。 コマンドライン引数を複数渡し、渡ってきた値が数字のみの場合は、数値*数値の文字数を出力し 数字のみでない場合は文字列を逆から1文字ずつ出力する。 数値の判定はtry/catchで行い、catchメソッドには「stringFlg = true;」のみにする。 というプログラムを作りたいのですが、 引数が1つの時は上手くいくのですが、11 2あ あ3 44を渡した場合、 22 あ 2 3 あ 88 と出るはずが、 22 1 1 あ 2 3 あ 4 4 と出てしまいます…。 どうしたら全ての引数を正しく表示出来るのでしょうか?教えて下さい。 現時点のソースコードです。 public class Test { public static void main(String[] args) { boolean stringFlg = false; try { if(StringUtils.isNumeric(args[0])){ for(String arg : args) { int num = Integer.parseInt(arg); System.out.println(num * arg.length()); } } else{ stringFlg = true; } } catch (NumberFormatException e) { stringFlg = true; } if(stringFlg){ for(String val : args) { String[] str = val.split(""); for(int i = str.length-1; i >= 0; i--){ System.out.println(str[i]); } } } } }

    • ベストアンサー
    • Java
  • コマンドライン引数 java

    学校で、2進数表記された文字列number1、number2…numberNを数値に変換し、合計を算出し、2進数表記の文字列に変換した結果を出力するプログラムを組む課題が出ました。 java Lesson06 number1 number2 … numberN の形式で受け取ったコマンドライン引数を元に、処理を行います。 ※number1からnumberNは、全て0か1のみで構成されている文字列 * 文字列の加算 * System.outまたはSystem.errのprint系メソッドで、Stringの値を受け取るもの以外 * Integerなどのラッパークラス * DecimalFormatなどの書式変換クラス 上記の機能は使ってはいけません。 ---- class Lesson{  public static void main(String args[]){   int sum;   for(int i = 1; i < args.length; i ++) {    int len = strlen(args[i]);//※    for(int j = 0; j < len; j ++) {     if(args[i][len - j - 1] == "1") {//※      sum = pow(2, j) + sum;//※     }    }   }  } } ---- とりあえず、与えられた二進数を計算する部分まで作ってみたのですが、※の部分でエラーが出てしまいます。 コマンドライン引数もよく分からなくて困っているので、教えていただければ助かります。 以上よろしくお願いいたします。

    • ベストアンサー
    • Java
  • コマンドライン引数

    『やさしいJava』で勉強してます。 import java.io.*; class Sam3 { public static void main(String args[]) { if(args.length != 1){ System.out.println("ファイル名が違うよ。"); System.exit(0); } try{ BufferedReader br= new BufferedReader(new FileReader(args[0])); String str; while((str = br.readLine()) != null){ System.out.println(str); } br.close(); }catch(IOException e){ System.out.println("エラー"); } } } で、コンパイルして、 Sam3 test2.txt と実行しても 「準備ができていません。読み取り中・・・」 としかでません。 なにか間違いがあるのでしょうか? お願いします。

    • ベストアンサー
    • Java
  • for文を使った累乗の計算方法について

    質問させてください。 for文を使った累乗の計算プログラムを作っています。 数値はコマンドライン引数から取得し、0番目の数字を i番目の数字分累乗するというものです。 ソースを途中まで作成したのですが、0乗した場合のプログラムが よく分かりません。どなたか教えていただけないでしょうか? public class Mondai { public static void main(String[] args) { //変数の初期化 int k = 0; if ( 2 <= args.length && args.length < 3) { //コマンドライン引数の数だけ配列を用意する int[] num = new int[args.length]; //0,1番目のコマンドライン引数を整数に変換してnumに代入する num[0] = Integer.parseInt(args[0]); k = num[0]; k *= k; num[1] = Integer.parseInt(args[1]); //num[1]の掛け算をnum[1]回繰り返す for (int i = 0; i < num[1] -2; i++) { k *= num[0]; } System.out.println("\"" + num[0] +"の" + num[1] + "乗は"+ k + "\""); if(num[1] == 0) { System.out.println("\"" + num[0] +"の" + num[1] + "乗は1\""); } //args.length <= 1の条件の時 } else if(args.length <= 1) { System.out.println("引数が足りないため累乗の計算ができません。"); //指定された条件以外の時 } else { System.out.println("引数が多すぎるため累乗の計算ができません。"); } } }

    • ベストアンサー
    • Java

専門家に質問してみよう