今天开始学习Java,我需要帮助来消除疑虑。
textField.text
当我写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
之前写一行import java.util.Scanner
?
P.S。这一系列视频Video Link是否适合学习Java?
答案 0 :(得分:3)
我怀疑重要的是操作顺序
在
System.out.println("The sum is:"+f+s)
第一个操作是"The sum is:"+f
所以+运算符将一个字符串和一个double作为操作数,并将f变量强制转换为其字符串值。然后第二个+运算符取"总和为:2" +0.5并且我们再次从double转换为string。
然而,在
System.out.println("The sum is:"+(f+s))
我们首先计算f + s,它是两个双打之间的加法,然后是连接。
我希望这是有道理的。
答案 1 :(得分:2)
BODMAS规则代表括号,订单,分部,乘法,加法,减法
由于你不在括号中添加它们,它会添加(连接)字符串。它评估括号内的所有内容
("string" + f + s)
除非你专门添加括号
("string" + (f + s))
在这种情况下,首先评估内部括号,然后评估外部括号。
另外我们为什么要在之前编写行import java.util.scanner class java application 1?
为了在类中使用导入的东西,你需要在class之前导入,所以编译器知道。