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

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

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

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

Q&A

解決済

3回答

7363閲覧

コマンドライン引数で受け取った二つの整数を数字に直す方法

Tutti

総合スコア83

Java

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

0グッド

1クリップ

投稿2016/06/27 12:43

編集2016/07/07 01:06
/* Interface02を実装するInterfaceSample02クラスを作成し、コマンドライン引数で受け取った2つの整数を加算、減算、乗算、除算した結果を示すプログラムを作成してください。 コマンドライン引数の数が2未満の場合は 『エラー:引数の数が足りません。』と表示。 コマンドライン引数で数字以外の文字列が渡された場合には、 『エラー:数字以外が入力されました。』と表示。 */ public interface Interface02{ public int plus(int num1, int num2 ); public int minus(int num1, int num2); public int multiply(int num1, int num2); public double divide(int num1, int num2); } class InterfaceSample02{ public static void main (String[] args){ if( ? > [0]){ }else{ } System.out.println(); }

というふうにしようと考えています。
でも、if文のところに引数二つをどのように書いていいか分かりません。
合っているかどうかもわかりません。
どうか、どのように考えたらいいか、どのようにして解くのか教えていただけませんか?

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

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

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

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

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

Zuishin

2016/06/27 13:04

1) タグの「Interface Builder」を適切なものに直してください。この場合は Java 等が適当かと思います。 2) ソースが見づらいので整形してください。編集画面で </> を押してください。 3) タイトルが適切ではありません。質問はインターフェースについてではなく、コマンドライン引数で受け取った二つの整数を数字に直す方法です。
Tutti

2016/07/07 01:04

指摘していただきありがとうございます。至急変更し、今後気をつけます。
guest

回答3

0

ベストアンサー

インタフェース Interface02を実装するクラスですので、まずはクラスの宣言が次のようになります。

java

1public class InterfaceSample02 implements Interface02 { 2 3}

すると、Interface02にて定義しているメソッドの中身を、InterfaceSample02は 実装しなければなりません

なお、InterfaceSample02クラスはmainメソッドから実行するようですので、

java

1public static void main (String[] args) { 2 3}

を作っていますね。この args配列が、起動時の引数になります。
もし引数が2つ必須なのであれば、argsはStringの配列ですので、次で配列の数を取得できます。

java

1args.length

なので、引数の数をチェックする処理として書くと、次のようになるでしょうか。

java

1public static void main (String[] args) { 2 if ( args.length != 2 ) { 3 // 引数が2個でなかった場合は終了 4 System.exit(0); 5 } 6 7 // 処理の続き.... 8}

投稿2016/06/27 13:49

A-pZ

総合スコア12011

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

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

Tutti

2016/06/28 00:59

なるほど!!インタフェースはそのように書くんですね!ただ見ただけで 理解していませんでした。 配列の数の取得の仕方、args.lengthでした!忘れていました。 考えの流れなどを分かりやすく教えてくださりありがとうございます。助かりました。
guest

0

あー問題が悪いな。mainメソッドはInterfaceSample02クラスに入れるとややこしくなるから、別の、例えばMainていうクラスに書いたほうがいいと思う。

以下、どのへんまでできますか。

  1. コマンドラインの引数の数を調べて、足りなかったらエラー
  2. コマンドラインから引数をもらって、聖水に変換する。できなかったらエラー
  3. Interface02を実装したInterfaceSample02クラスを作る
  4. InterfaceSample02に加減乗除のメソッドを作る
  5. InterfaceSample02インスタンスを作る。Interface02のインスタンスと見なして
  6. そのInterface02インスタンスのメソッドを呼ぶ
  7. 引数に 0 0 とか指定して遊ぶ
  8. 引数に 三 十二 とか指定して遊ぶ

投稿2016/06/27 13:05

matobaa

総合スコア2493

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

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

Tutti

2016/06/27 13:36

まだソースをすべてかけてないので、実行は出来ていません。 if文のところでどのように書けばいいのかわからなくて止まっています。
matobaa

2016/06/27 22:53 編集

できているかどうかを聞いているのではなくて、 自力でどこまでできるかを聞いてます。 全部作ってから動作確認するんじゃなくて、ちょっとづつ動作確認しながら作るんだよ。
matobaa

2016/06/28 00:07

なるほど。「コマンドラインの引数の数を調べて、足りなかったらエラー」ができてないということですね。理解しました。そこはA-pZさんの回答が参考になるかと。
Tutti

2016/06/28 00:50

はい! 教えてくださり、どうもありがとうございました!
Zuishin

2016/07/07 00:29 編集

InterfaceSample02 というプログラムのメインとなるクラスに main 関数を置くのは命名も書き方も全く問題ないどころかきわめて一般的です。
matobaa

2016/07/07 02:05 編集

ご指摘の通り、命名も書き方も全く問題ないどころかきわめて一般的なんですが、初級者にとっては話がややこしくなるんですよ……。マイナスか。
guest

0

他の回答者様の回答を踏まえて
配列から中身をとりだすのは

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

上みたいに
配列変数[X]で取り出せます。
(上の例は配列の中身がintであること前提なのでご注意ください。)

投稿2016/06/27 15:44

Yossi_1982

総合スコア95

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

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

Tutti

2016/07/07 00:18

なるほどですね!答えてくださりありがとうございます。解決しました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問