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

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

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

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

Q&A

解決済

4回答

15865閲覧

String から boolean には変換できません Eclipse エラー JAVA

R.lawliet

総合スコア41

Java

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

0グッド

0クリップ

投稿2015/04/08 04:59

public static void main(String[] args) {
int input1 = Integer.parseInt(args[0]);
int input2 = Integer.parseInt(args[1]);
String sign = args[2];

//それぞれのメソッド呼び出し ★if(sign = "+"){ plus(input1,sign,input2); ★}else if(sign = "-"){ minus(input1,sign,input2); ★}else if(sign = "×"){ multiply(input1,sign,input2); ★}else if(sign = "÷"){ divide(input1,sign,input2); }else{ System.out.println("計算できません。"); } }

お世話になります。
入力された数字、input1とinput2を
入力された記号、signの種類によって計算するメソッドを分けるコードの冒頭部分です。

これは課題なので、
//それぞれのメソッド呼び出し
以下をEclipseを用いて作成しています。

各★のところで、
String から boolean には変換できません
というエラーが発生します。
クイックフィックスによる
if(sign = "+"){

if(sign = "+" != null){
これでは解決しませんでした。
むしろエラーが増えました。

皆さんどうか対応策をご教授下さい。

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

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

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

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

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

guest

回答4

0

ベストアンサー

if文のカッコには結果がbooleanになる式しか書けません。
=は代入の演算子で、代入する変数がbooleanでなければif文のカッコに書くことはできません。
Javaでは、文字列の比較はequalsメソッドを使います。

toydevさんの回答では、先に"+"を書いていますが、これはsignnullかどうかをチェックしなくても良いやり方です。signが絶対にnullにならない文脈であれば、逆にしなくてもOKです。

投稿2015/04/08 05:21

argius

総合スコア9390

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

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

R.lawliet

2015/04/08 05:42

より詳しい回答を頂いたのでベストアンサーさんに選ばせて頂きました。 たまに出現するnullの存在を未だ完全に把握出来て居ないのですが、問題に引っかかった時はこのコメントを見直しに来たいと思います。 回答ありがとうございました!
swordone

2015/04/08 15:41

signがnullになることはこのコードにおいてはないと思いますよ. signに入れるargs[2]はnullになるということはありえないので. ただプログラム起動時の引数に数字2つ以下しか渡さないと args[2]が存在しないのでArrayIndexOutOfBoundsExceptionになりますが.
argius

2015/04/08 23:18

swordoneさん 回答者さんの書かれているコードではそうなりますね。
guest

0

if else でなく、 switch を使うという方法もあります。
swith の場合は
if (a == b) を if (a = b)
のように == と = を書き間違えるということは無くなります。

参考;

投稿2015/04/08 13:49

katoy

総合スコア22324

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

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

R.lawliet

2015/04/09 09:00

なるほど。勉強になります。 自分に合った書き方を追求していきたいと思います。
guest

0

javaやったことないんでわからないんですけど、

if(sign = "+")は
if(sign == "+")じゃないんですか?

=の使い方ですが、
a = 5 みたいに左辺に右辺を代入するもんですよね?
a == 5 というのは、左辺と右辺が一致するか、つまりイコールを意味します。
a != 5 とすれば、イコールでない。
演算子を調べるといいと思いますが…

投稿2015/04/08 05:17

7hikolin

総合スコア124

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

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

R.lawliet

2015/04/08 05:32

なるほど、どうしても数学の=から離れられない様です。 未だ==になれません。 equalsメソッドを使わなければタイトルのエラーは克服出来ませんでしたが、 これも確かにエラーの原因の一つでした。 ありがとう御座います。
guest

0

文字の一致確認は equals メソッドを使うんだよ。

lang

1if ("+".equals(sign)) {

とかね。

他にも突っ込みたいことがあるんだけどそれは別の人がきっと回答してくれるよ!

投稿2015/04/08 05:10

toydev

総合スコア297

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

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

R.lawliet

2015/04/08 05:39

JAVA学習1週間目の見習い故にまだそのメソッドを知りませんでした。 ありがとう御座います。 ちんぷんかんな質問をなるべくせずに適切な回答を得られるよう精進したいと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問