方法
语法:
访问修饰符 返回值类型 方法名(参数){
方法体...
}
方法有:无参方法和有参方法
注意:方法就是行为就是功能
无参方法:
public class Demo1 {
// 主方法
public static void main(String[] args) {
// 使用方法也叫调用方法
method();
}
// 自定义无参方法 中间加上static目的是因为当前方法需要在主方法中被调用 主方法是static修饰所以当前方法也要static修饰
public static void method() {
// 电脑生成随机数 0-9
int computerNum = new Random().nextInt(10);
System.out.println("中奖数字已生成!" + computerNum);
Scanner sc = new Scanner(System.in);
int personNum = sc.nextInt();
while (true) {
if (computerNum == personNum) {
System.out.println("恭喜中奖!");
break;
} else {
System.out.println("没有中奖!");
}
System.out.println("请再次输入:");
personNum = sc.nextInt();
}
}
}
有参方法:
案例:
public class Demo2 {
public static void main(String[] args) {
// 当前调用method方法小括号中的参数为实际参数
method(1,2);
}
// 当前方法小括号中参数为形式参数
public static void method(int a , int b){
int c = a+b;
System.out.println(c);
}
}
数组
数组语法
为什么要用数组?
一个变量里面只能存储一个数据,一个数组里面可以存储多个数据
语法格式:
数据类型[] 数组名 = new 数据类型[数组长度];
数据类型[] 数组名 = new 数据类型[]{数组元素};
数据类型[] 数组名 = {数组元素};
案例:
public class Demo5 {
public static void main(String[] args) {
// 第一种:表示开辟一个空间为5的数组
int[] arr = new int[5];
// 数组通过下标获取数据,也通过下标存储数据 [下标]
arr[0] = 2;
arr[1] = 6;
arr[2] = 5;
arr[3] = 4;
arr[4] = 1;
// 第二种创建数组并赋值的方式
int arr2[] = new int[]{2,6,5,4,1};
// 第三种创建数组并赋值的方式
int arr3[] = {2,6,5,4,1};
// ArrayIndexOutOfBoundsException数组下标越界异常
// System.out.println(arr[5]);// 没有下标为5,所以打印出错
// 通过下标获取数据
System.out.println(arr[3]);
System.out.println("数组长度为:"+arr.length);
// arr.length:length表示长度 i表示下标 因为数组通过下标获取数据
// 遍历数组
for(int i = 0 ; i < 5 ; i ++){
System.out.print(arr[i]+" ");
}
System.out.println();
System.out.println("=================");
for(int i = 0 ; i < 5 ; i ++){
System.out.print(arr2[i]+" ");
}
System.out.println();
System.out.println("=================");
for(int i = 0 ; i < 5 ; i ++){
System.out.print(arr3[i]+" ");
}
}
}
冒泡算法
案例:
public class Demo7 {
public static void main(String[] args) {
int[] arr = {6,4,2,8,9,1,5};
System.out.print("排序之前:");
method1(arr);
// 作用:换行
System.out.println();
System.out.println("===========================");
method2(arr);
// 增强for循环
// 前:后 前表示接收变量 后表示数组
System.out.print("排序之后:");
for(int num : arr){
System.out.print(num + " ");
}
}
private static void method2(int[] arr) {
/*
外层循环控制需要进行多少轮的冒泡操作
冒泡排序的特点是每一轮都能确保将当前未排序部分的最大元素放到正确的位置上
nums.length - 1 是由于每一轮冒泡都会确定一个元素的最终位置,因此最后一个元素不需要再比较和交换,
故循环次数为数组长度减1
*/
for(int i = 0 ; i < arr.length - 1 ; i ++){
/*
内层循环负责在每一轮冒泡中,依次比较相邻的元素并进行必要的交换操作
nums.length - i - 1 表示每一轮冒泡需要比较的元素对数。
随着 i 的增加,已经排好序的元素会逐渐增多,因此内层循环中需要比较的元素对数也会减少
*/
for (int j = 0 ; j < arr.length -i -1 ; j ++){
// 如果前一个数字大于后一个数字那么这两个数字进行交换
if(arr[j] > arr[j+1]){
// temp一个临时变量用于变量之间的交换
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
private static void method1(int[] arr) {
for(int i = 0 ; i < arr.length ; i ++){
System.out.print(arr[i]+" ");
}
}
}