每日学习:从参考书籍例题学习知识
public class Main {
public static void main(String[] args) {
printBook("D");
double arr[]={20,13.3,5,3.2};
System.out.println("最后结果为:"+total(arr));
}
public static void printBook(String x){
if(x.equals("A")){*******************标记点1
System.out.println("a");
}
else if(x.equals("B")){
System.out.println("b");
}
else if(x.equals("C")){
System.out.println("c");
}
else{
System.out.println("数据库不存在这项数据");
}
}
public static double total(double[] arr){
double sum=0;
for(double d:arr){///*******************标记点2
sum=sum+d;
}
return sum;
}
}
1.标记点1:区别equals()与==的作用
如果我将equals改为==,对于这个程序来说依然是对的,那是否可以说明这两者就是等价的呢?
答案是不行!
实际上equals() 方法比较字符串对象中的字符,而= =运算符比较两个对象引用看它们是否引用相同的实例。
下面的程序可以说明两者的区别:
String s1 = "abc";
String s2 = new String(s1);
System.out.println(s1.equals(s2)); // 输出true
System.out.println(s1 == s2); // 输出false
equals比较的是字符串对象中的字符,很明显,s1与s2的内容是一样的,结果输出true。
==比较的是变量内存中存放的对象的内存地址,s1与s2分别指向不同内存空间。
2.标记点2:for-each语句
for-each语句是一种特殊的for语句,是 for 语句的特殊简化版本,主要用于执行遍历功能的循环。
基本的语法格式如下:
for(类型 变量名:集合){
语句块;
}
集合:指被遍历的数组或集合对象。 类型:指被遍历的数组的类型。 变量名:创建一个变量用来取出数组中的元素值;
过程:foreach循环会遍历数组中每一个元素,其中的变量会迭代每一个元素;
public static void main(String[] args) {
String[] a={"A","B","C","D","E"};
System.out.println("将要输出:");
// 使用 foreach 循环语句遍历数组
for(String x:a) {
System.out.println(x);
}
}
结果为
将要输出:
A
B
C
D
E