Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

記号に関する質問

int m =100;
int n = 50;

System.out.println(m ? n);

上のコードで、?の代わりに何を入れれば、結果として
10050が出てきますか?

m*100+n としてやってもいいのですが、これだと色々な値を入れたときに対応できないと思います。

10

回答

78635

閲覧

10件の回答

評価

0

なぜ対応できないと思ったのですか?
mとnには定義は無いのですか?mは百位からの値とか。

#内容と題名が合っていないと思います。

評価

0

つなげて出したいということ?

mを改行なしで出して、nを出せばいいのでは?

評価

0

つなげて出したいのであれば。
System.out.println(m ? n);の形でやるとすると

System.out.println(m +""+ n);ですね

評価

0

一応。
デバッグだったり、使用頻度が少なかったりする場合は+で問題ないですが、
頻繁に使われたり、連結する数が多かったりするのなら、速度の面からSystem.out.printをn回か、
あるいはStringBuilderで連結したものを表示するか、をおすすめします。

評価

0

そうですね、つなげて出したいだけです。

TAMAさんありがとう

評価

0

Gerardさん、
mioさんの指摘を、十分に理解しておいたほうがいいですよ。

評価

0

もう見ておられないかもしれませんが、「記号」ではなく「演算子」ですね。

評価

0

StringBuilderを調べてみました。
あまり頻繁に使わないですが、勉強になりました。

ありがとうございました。

評価

0

速度的にStringBuilderが最速なので私もお奨めします。

最近は可読性を重視する傾向にあるため、速度の最適化はハード任せやコンパイラ任せになっている思っています。

そのためstr += m + "" + n;のようなものを万単位で実行するような無謀なソースも見かけます。
これやると極端にパフォーマンスが落ちます。

ただ、コンパイラも進化しており次のようなコードをJDK1.5でコンパイルすると。
str = m + "" + n;//+=ではありません。

1位 StringBuilder
2位 +演算子
3位 StringBuffer
だったりします。
+演算子はStringBuilderを使うようになっています。
チューニングの意識も変えないといけないのかなと思っているところです。
#ついていくの大変・・

評価

0

Java5.0からStringBuilderが使えるようになって、
より文字列操作が早くなりましたね。
やはりシンクロとるのは、かなりのパフォーマンスダウンなんですね。

ありがとうです<tama>さん

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。