一、实验目的
1.学习数组的定义;
2.学习数组的初始化;
3.学习对数组的访问;
4.掌握整数除法、浮点数除法、混合除法;
5.掌握基本的逻辑运算符的用法;
二、实验要求
3.1数组的定义与初始化
定义两个长度为5的数组,一个采用静态初始化,一个采用动态初始化,分别将其输出。
public class Exam_3_1 {
public static void main(String[] args) {
//动态初始化
int[] dynamicArray = new int[5];
//动态初始化的默认值输出
System.out.println("动态初始化默认值输出:" + Arrays.toString(dynamicArray));
//静态初始化
int[] quietArray = new int[]{1, 2, 3, 4, 5};
System.out.println("静态初始化值输出:" + Arrays.toString(quietArray));
}
}
运行结果:
关于Java数组中的初始化:
概念:在内存当中创建一个数组,并且向其中赋予一些默认值。
两种常见的初始化方式:
动态初始化(指定长度)
静态初始化(指定内容)
动态初始化数组的格式:
数据类型[] 数组名称 = new 数据类型[数组长度];
3.2数组的访问
定义一个长度为6的整型数组,采用键盘输入相应的数,并实现数组元素由小到大的排序。
import java.util.Arrays;
import java.util.Scanner;
public class Exam_3_2 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int[] sortArray = new int[6];
for (int i = 0;i<sortArray.length;i++) {
sortArray[i] = scanner.nextInt();
}
sort(sortArray);
System.out.println(Arrays.toString(sortArray));
}
public static void sort(int[] sortArray){
int temp;
for (int i = 0; i < sortArray.length - 1; i++) {
for (int j = 0; j < sortArray.length - 1 - i; j++) {
if(sortArray[j]>sortArray[j+1]){
temp = sortArray[j];
sortArray[j] = sortArray[j+1];
sortArray[j+1] = temp;
}
}
}
}
}
运行结果:
3.3整数除法、浮点数除法与混合除法
新建Java代码,实现Java的整数除法,浮点数除法和整数与浮点数混合除法。分别计算int a1,b1, c1,为4/5,4.0/5.0,4/5.0的值和当变量为double a2,b2,c2时的值,并输出结果,当出现错误时,采用强制类型转换保证程序的正确性。
public class Exam_3_3 {
public static void main(String[] args) {
int a1 = 4/5;
int b1 = (int)(4.0/5.0);
int c1 = (int)(4/5.0);
double a2 = 4/5;
double b2 = 4.0/5.0;
double c2 = 4/5.0;
System.out.println("a1 = " + a1 + ",b1 = " + b1 + ",c1 = " + c1);
System.out.println("a2 = " + a2 + ",b2 = " + b2 + ",c2 = " + c2);
}
}
在Java中,使用算术运算符+,-,*,/表示加减乘除运算,当参与/的运算的两个操作数都是整数时,表示整数除法,否则,表示浮点除法.整数的求余操作(有时称为取模),用%表示,例如,15/2,15%2,15.0/2.
3.4基本的逻辑运算符的用法
新建Java代码,实现Java的逻辑运算。给定布尔变量i, j, k, l,i的值为5>6的比较结果,j为i的非,k为i和j的与,l为i和j的或,最后分别将4个结果输出。
public class Exam_3_4 {
public static void main(String[] args) {
boolean a = 5>6;
boolean b = !a;
boolean c = a&&b;
boolean d = a || b;
System.out.println("a = " + a + ",b = " + b + ",c = " + c + ",d = " + d);
}
}
运行结果:
总结:
1).短路与'&&',与'&':a&&b a&b
运算规则: a和b同时为true,结果为true;否则结果为false.
区别:
a&&b 短路与:a为false结果即为false,不再计算b;
a&b a,b都要计算
2)短路或'||' ,或'|':a||b a|b
基本功能:a和b同时为false,结果为false;否则结果为true.
区别:
a||b 短路或:a为true结果即为true,不再计算b
a|b a,b都要计算
小技巧:在程序设计时使用&&和||运算符,不建议使用&和|运算符。
3)逻辑非!
!a:取与a 相反的值,即a为 true,!a为false;a为 false,!a为true。
4)异或^ : a 与 b 相异时,结果为 true ;
5)运算优先级:!最高,其他相同
6)注意:逻辑运算的数据和逻辑运算符的运算结果是boolean类型(true和false)。
三、实验心得
数组可以存放多个同一类型的数据。数组也是一种数据类型,是引入类型。即数组就是一组数据。数组创建以后,如果没有复制,则有默认值:int - 0 ,short - 0 ,double - 0.0,boolean - false 等。
数据混合运算时,系统首先自动将所有数据转换成容量最大的那种数据类型,然后再进行计算,当我们把精度(容量)大的数据类型复制给精度(容量)小的数据类型时,就会报错,反之就会进行自动类型转换。