[英]proper syntax in system.out.prinln()
今天開始學習Java,我需要幫助來消除我的疑問。
import java.util.Scanner;
public class JavaApplication1 {
public static void main(String[] args) {
Scanner leo = new Scanner(System.in);
double f, s;
System.out.println("Enter first number: ");
f = leo.nextDouble();
System.out.println("Enter second number: ");
s = leo.nextDouble();
System.out.println("The sum is " + f + s);
}
}
當我寫+f+s
兩者都被視為String
。
Enter first number: 2
Enter second number: 5
The sum is 2.05.0
但是,當我寫(f+s)
它們將被視為doubles
(這是期望的結果)。
Enter first number: 3
Enter second number: 4
The sum is 7
為什么會這樣呢?
另外,為什么我們在class JavaAapplication1
之前寫一行import java.util.Scanner
?
PS這一系列視頻Video Link是否適合學習Java?
我懷疑重要的是操作順序
在
System.out.println("The sum is:"+f+s)
第一個操作是"The sum is:"+f
因此+運算符將一個字符串和一個double用作操作數,並且f變量將強制轉換為其字符串值。 然后,第二個+運算符取“和為:2” +0.5,然后我們又從雙精度轉換為字符串。
但是,在
System.out.println("The sum is:"+(f+s))
我們首先計算出f + s,它是兩個雙精度數之間的加法,然后是一個串聯。
我希望這是有道理的。
BODMAS規則代表方括號,訂單,除法,乘法,加法,減法
由於您沒有將它們添加在方括號中,因此它會添加(連接)字符串。 它評估括號內的所有內容
("string" + f + s)
除非您特別添加括號
("string" + (f + s))
在這種情況下,首先評估內部括號,然后評估外部。
另外,為什么我們在類Java應用程序1之前寫一行import java.util.scanner?
為了在類中使用導入的內容,您需要在類之前導入,這樣編譯器就知道了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.