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

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

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

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

Q&A

解決済

2回答

457閲覧

Javaの整数電卓で詰まっています。

zinee

総合スコア5

Java

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

0グッド

1クリップ

投稿2019/11/11 00:52

前提・実現したいこと

ここに質問の内容を詳しく書いてください。

Javaを使って整数電卓を作っています。
以下計算の部分をメソッド化したいと考えていますが、上手く数値が戻せなく困っております。
何かヒント頂けたら幸いです。

発生している問題・エラーメッセージ

エラーメッセージ

該当のソースコード

これが一応動いている部分のコードです。

Java

1if(symbol=="+"){ 2 firstOperand = Math.round(firstOperand += stackNum); 3 }else if(symbol=="-"){ 4 firstOperand = Math.round(firstOperand -= stackNum); 5 }else if(symbol=="*"){ 6 firstOperand = Math.round(firstOperand *= stackNum); 7 }else if(symbol=="/"){ 8 firstOperand = Math.round(firstOperand /= stackNum); 9 }

こちらが書き写したに近いのですがメソッドの部分です。

Java

1 public double calc(String s,double d,int i){ 2 3 if(s=="+"){ 4 d = Math.round(d += i); 5 }else if(s=="-"){ 6 d = Math.round(d -= i); 7 }else if(s=="*"){ 8 d = Math.round(d *= i); 9 }else if(s=="/"){ 10 d = Math.round(d /= i); 11 } 12 return d; 13 } 14

試したこと

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

y_waiwai

2019/11/11 00:54

上手く数値が戻せない、といういのはどういう数値が戻ってくるんでしょうか
zinee

2019/11/11 01:18

申し訳ありません、戻り先の指定がうまくいっていなかったのですが自己解決いたしました。
guest

回答2

0

ベストアンサー

何かヒント頂けたら幸いです。

ヒントではないのですが、s=="+"のように文字列を==で比較してしまうと、インスタンスの比較になってしまい、文字列の中身は等しいのにfalseとなることがあります。

"+".equals(s)あるいはObjects.equals(s, "+")のようにequalsを使って比較してください。

投稿2019/11/11 00:55

maisumakun

総合スコア145184

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

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

0

戻り先の指定を間違えていたようで自己解決いたしました。

投稿2019/11/11 01:18

zinee

総合スコア5

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問