![](/img/trans.png)
[英]Can someone explain to me why this nested loop function print this way?
[英]Can someone explain me why the print of only string s4 turns out to be 10bab?
我目前是第一次學習 java 並且卡在了某些代碼處。 該練習是關於評論的。 任務是注釋掉不必要的代碼部分。
public class Solution {
public static void main(String[] args) {
int a = 10;
int b = 15;
double c = b + 38;
//int d = a + 12;
// double e = 12.3;
String s = "s" + a;
String s1 = a + "b";
//String s2 = "a";
String s3 = s1 + "a";
String s4 = s3 + "b";
System.out.println(c + s4 + s);
}
}
如果我只打印 s4 output 結果是
10bab
僅打印 s4 的 output 不應該是10151015
就像打印字符串 s1 一樣,變量 a 和 b 都被調用並連接起來。 還是我的理解有問題。 感謝您寶貴的時間和答復。 謝謝
java
中有一條規則:
int a = 10;
String str = a + "xxx"; // means str = String.valueOf(a) + "xxx"
int a = 10; // a == 10
int b = 15; // b == 15
double c = b + 38; // c == b + 38 = 15 + 38 = 53.0
//int d = a + 12;
// double e = 12.3;
String s = "s" + a; // s == "s" + a = "s" + "10" = "s10"
String s1 = a + "b"; // s1 == a + "b" = "10" + "b" = "10b"
//String s2 = "a";
String s3 = s1 + "a"; // s3 == s1 + "a" = "10b" + "a" = "10ba"
String s4 = s3 + "b"; // s4 == s3 + "b" = "10ba" + "b" = "10bab"
System.out.println(c + s4 + s); // c + s4 + s = "53.0" + "10bab" + "s10" = "53.010babs10
首先,您混合了導致您誤解的類型。
int - 負責存儲整數,如 1、2、5
double - 負責存儲逗號分隔的值,如 1.5、6.3、5.321
字符串 - 負責字母數字符號,因此它可以存儲任何“表”、“2”(請注意,如果我使用“”,則意味着這意味着它是一個字符串)
因此,逐行查看代碼的 output 是:
int a = 10;
int b = 15;
int c = b + 38; // OUTPUT 53
//int d = a + 12;
//double e = 12.3;
String s = "s" + a; // OUTPUT s10 COMMENT You are adding String "s" to int a so a become String with value of "10"
String s1 = a + "b"; // OUTPUT 10b COMMENT same story here a become String with value "10" and we are adding string "b"
//String s2 = "a";
String s3 = s1 + "a"; // OUTPUT 10ba COMMENT s1 is now "10b" and you are adding "a"
String s4 = s3 + "b"; // OUTPUT 10bab COMMENT s3 is now "10ba" and you are adding "b"
System.out.println(c + s4 + s); // OUTPUT 5310babs10 COMMENT c becomes String with value "53" adding s4 = "10ba" adding String s = "s10"
為了達到您的期望 10151015,代碼應如下所示
int a = 10;
int b = 15;
int c = b + 38; // OUTPUT 53
String s1 = String.valueOf(a) + String.valueOf(b); // OUTPUT 1015
String s3 = s1 + String.valueOf(a); // OUTPUT 101510
String s4 = s3 + String.valueOf(b); // OUTPUT 10151015
我沒有運行該代碼,但我希望你理解你的錯誤理解:D
int a
是一個變量,其中"a"
是一個String
。 變量a
僅在String s1
(和String s
)中使用,其他String
s 使用"a"
,不會被a
的值替換,因為它是字符串文字。
int a = 10;
String s1 = a + "b";
String s3 = s1 + "a";
String s4 = s3 + "b";
String s4
將是:
10 + "b" + "a" + "b"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.