次の疑問があります。
public static void main(String[] args) throws IOException{
int number=1;
System.out.println("M"+number+1);
}
出力:M11
しかし、私はそれをM11の代わりにM2で印刷してもらいたいのです。変数がforループに含まれているため、++を番号付けできませんでした。そうすると、出力形式が変わるため、別の印刷ステートメントを使用して印刷できなかった場合に異なる結果が得られます。
それを適切に印刷する方法を手伝ってくれるようにあなたに要求します。
これを試して:
System.out.printf("M%d%n", number+1);
どこ %n
は改行です
sum
が最初に発生するようにするには、合計の前後に角かっこを追加します。これにより、優先順位が最も高いbracket
が最初に評価され、次にconcatenation
が実行されます。
System.out.println("M"+(number+1));
Javaが文字列を連結する優先順位と関係があります。
基本的にJavaは言っています
"M"+number = "M1"
_"M1"+1 = "M11"
_数学と同じように、優先順位をオーバーロードできます
_"M"+(number+1)
_
これは今読む
"M"+(number+1)
= "M"+(1+1)
= _"M"+2
_ = _"M2"
_試す
System.out.println("M"+(number+1));
これを試して:
System.out.println("M"+(number+1));
データを不変条件からより明確に分離する方法:
int number=1;
System.out.printf("M%d%n",number+1);
System.out.println("M"+number+1);
Javaでの文字列連結はこのように機能します:
最初のオペランドのタイプがStringで、+
演算子を使用すると、次のオペランドが連結され、結果はStringになります。
試す
System.out.println("M"+(number+1));
この場合、()
括弧が最も優先順位が高いため、括弧内のものが最初に評価されます。次に、結果のint値が文字列リテラルと連結され、文字列「M2」が生成されます。
System.out.println("M"+number+1);
ここでは、println()
メソッドの__と同様に、_+
_を連結演算子として使用しています。
合計を行うために_+
_を使用するには、優先順位を高くする必要があります。これは、以下に示すように角かっこで覆うことで実行できます。
System.out.println("M"+(number+1));