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

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

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

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

Q&A

解決済

2回答

2140閲覧

2回目の値を受け取り代入の仕方。電卓プログラム。

Tutti

総合スコア83

Java

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

0グッド

0クリップ

投稿2016/08/04 05:01

編集2016/08/04 05:19

このように表示させたいのです。

現在の値: ←ここの値の受け取り代入の仕方。
演算子:
入力された値: ←ここの値の受け取り代入の仕方。

キーボードから一文字ずつ、数字→演算子→数字の順番で値を受け取り、if文で数字だったら変数に代入使用と思っています。それで、1回目だと、numへ。2回目だと、num2へ。と しようと思ったのですが、数字で判断しない方法を見つけなさいと指示がありました。ですが、答えにたどり着けないでいます。何かいい方法をご存知ではないですか?教えていただけませんか?

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

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

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

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

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

Zuishin

2016/08/04 05:06

キーボードから値を受け取り、1 回目だと num へ、2 回目だと num2 へ代入すればいいと思います。
Tutti

2016/08/04 05:17

そうなのですが、キーボードからは1文ずつ、数字→演算子→数字、のように読み込むので、num2へどのようにして入れればいいのかを悩んでいるところです。
abs123

2016/08/04 05:22

Javaの学習をするうえで、参考にしている書籍等があれば、書籍名と、どこまで進めているか、教えてもらうことは出来ないでしょうか?
Tutti

2016/08/04 08:11

すみません。詳しく言うとややこしくなるので、簡単に。 Javaの基礎の部分を勉強しています。
tignear

2016/08/04 22:36

ソースコードがほしいです
guest

回答2

0

ベストアンサー

java

1public class Calc { 2 private PrintWriter pw; 3 private BufferedReader br; 4 public static void main(String... args) throws IOException{ 5 Calc calc = new Calc(System.console()); 6 calc.start(); 7 } 8 public Calc(Console c){ 9 if(c!=null){ 10 pw=c.writer(); 11 br=new BufferedReader(c.reader()); 12 } 13 } 14 public int start() throws IOException{ 15 int num,r=0; 16 num=numIn("数値を入力してください"); 17 String op=opIn("演算子(+,-,*,/)を入力してください"); 18 switch(op){ 19 case "+": 20 r=num+numIn("数値を入力してください"); 21 break; 22 case "-": 23 r=num-numIn("数値を入力してください"); 24 break; 25 case "*": 26 case "×": 27 r=num*numIn("数値を入力してください"); 28 break; 29 case "/": 30 case "÷": 31 r=num/numIn("数値を入力してください"); 32 } 33 pw.println(r); 34 return r; 35 } 36 protected int numIn(String s) throws IOException{ 37 pw.println(s); 38 return Integer.valueOf(br.readLine()); 39 } 40 protected String opIn(String s) throws IOException{ 41 pw.println(s); 42 return br.readLine(); 43 } 44}

こんな感じじゃダメなのかなぁ・・

投稿2016/08/04 23:40

tignear

総合スコア260

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

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

Tutti

2016/08/05 01:55

返信が遅くなり、申し訳ございません。 コードも書いていただき、ありがとうございます。参考にさせていただきます。
guest

0

数字で判断するなという条件を出されたということは、入力された値(文字列)が数字かどうかを見て代入するのはダメだということではないでしょうか。
おそらく、押されたキーが何か?をキーコードで判定して反映しろということではないですか?

「13」とユーザーが入力したとき、プログラム側では「13という文字列は数字か?」を見るのではなく、

①「1」のキーが押された→「1」を表示
②「3」のキーが押された→「3」を表示
③「+」などのキーが押された→現在の入力値「13」をnumに代入
④「5」のキーが押された→「5」を表示
⑤「Enter」が押された→現在の入力値「5」をnum2に代入
⑥num+num2の結果を返す

といった流れになるのではないでしょうか。

投稿2016/08/04 05:19

NatsumiOki

総合スコア1298

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

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

NatsumiOki

2016/08/04 05:22

補足ですが、一時的な変数を使って入力された値を連結させておいたり、「+」などの選択された演算の内容を保持しておく必要があると思いますのでその処理も入れてください。
Tutti

2016/08/04 06:20

連結と保持ですか!解決につながりそうです!!!試してみます!!! ありがとうございます!!
Tutti

2016/08/04 07:39

考えたのですが、解決しませんでした。教えていただいたのに、すみません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問