方法
定义
调用
带参数方法定义和调用
形参,实参
带返回值的方法
定义
调用
注意事项
return
方法的重载 注意要在同一个类里面
练习
public static void printArr(int[] arr){
System.out.print("[");
for (int i : arr) {
if (i == arr[arr.length - 1]){
System.out.print(i);
}else {
System.out.print(i + ", ");
}
}
System.out.println("]");
}
public static int getMax(int[] arr){
int maxNum = arr[0];
for (int i : arr) {
if (i > maxNum){
maxNum = i;
}
}
return maxNum;
}
public static boolean isExist(int a, int[] arr){
for (int i : arr) {
if (i == a ){
return true;
}
}
return false;
}
return break关键字的区别
return:
其实跟循环没有什么关系,跟方法有关的,表示1结束方法2返回结果如果方法执行到了return,那么整个方法全部结束,里面的循环也会随之结束了
break关键字
其实跟方法没有什么关系,结束循环或者switch的。
package demo;
public class test2 {
public static void main(String[] args) {
int[] arr = {11, 22, 55, 322, 22};
int[] arrCopy = copyOfRange(arr, 3, 5);
for (int i : arrCopy) {
System.out.print(i + " ");
}
}
public static int[] copyOfRange(int[] arr, int from, int to) {
int[] arrCopy = new int[to - from];
for (int i = from, index = 0; i < to; i++, index++) {
arrCopy[index] = arr[i];
}
return arrCopy;
}
}
方法的内存
先进后出
基本数据类型 栈内存空间中变量存储的是真实的数据,存在自己的空间中
引用数据类型 只要有new就是引用数据类型,记录的是堆内存的地址,而不是真实值
练习
键盘录入一个正整数
定义一个方法,该方法的功能是计算该数字是几位数字,并将位数返回
在main方法中打印该数字是几位数
演示格式如下:
(1)演示一:
请输入一个整数:1234
控制台输出:1234是4位数字
(2)演示二:
请输入一个整数:34567
控制台输出:34567是5位数字
package demo;
import java.util.Scanner;
public class test3 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个整数:");
int wei = returnWei(sc.nextInt());
System.out.println(wei);
}
public static int returnWei(int a) {
int wei = 1, flag = 10;
while (true) {
int shang = a / flag;
if (shang != 0){
wei++;
flag *= 10;
}else break;
}
return wei;
}
}
需求:
定义一个方法equals(int[] arr1,int[] arr2).
功能:
比较两个数组是否相等(长度和内容均相等则认为两个数组是相同的)
package demo;
public class test4 {
public static void main(String[] args) {
int[] arr1 = {11, 22, 55, 322, 22};
int[] arr2 = {11, 22, 55, 322, 22};
System.out.println(equals(arr1, arr2));
}
public static boolean equals(int[] arr1, int[] arr2) {
if (arr1.length != arr2.length) {
return false;
} else {
for (int i = 0; i < arr1.length; i++) {
if (arr1[i] != arr2[i]) {
return false;
}
}
return true;
}
}
}
package exercise;
import java.util.Scanner;
public class test1 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("月份:");
int month = sc.nextInt();
System.out.println("价格:");
int price = sc.nextInt();
System.out.println("头等舱0or经济舱1:");
int lv = sc.nextInt();
if (month >= 5 && month <= 10) {
getPrice(price, lv, 0.9, 0.85);
} else if ((month >= 11 && month <= 12) || (month >= 1 && month <= 4)) {
getPrice(price, lv, 0.7, 0.65);
} else {
System.out.println("没有这个月份");
}
}
private static void getPrice(int price, int lv, double discount1, double discount2) {
if (lv == 0) {
price = (int) (price * discount1);
System.out.println(price);
} else if (lv == 1) {
price = (int) (price * discount2);
System.out.println(price);
}else {
System.out.println("没有这个等级");
}
}
}
package exercise;
public class test2 {
public static void main(String[] args) {
int count = 0;
for (int i = 101; i <= 200; i++) {
if(find(i)){
count++;
System.out.print(i + " ");
}
}
System.out.println();
System.out.println(count);
}
public static boolean find(int i) {
for (int j = 2; j < i; j++) {
if (i % j == 0) {
return false;
}
}
return true;
}
}
package exercise;
import java.util.Random;
public class test3 {
public static void main(String[] args) {
char[] arr = new char[52];
for (int i = 0; i < 52; i++) {
if (i < 26) {
arr[i] = (char) (97 + i);
}else {
arr[i] = (char) (65 + i - 26);
}
}
Random r = new Random();
String result = "";
for (int i = 0; i < 4; i++) {
int randomIndex = r.nextInt(arr.length);
result += arr[randomIndex];
}
result += r.nextInt(10);
System.out.println(result);
}
}
package exercise;
import java.util.Scanner;
public class test4 {
public static void main(String[] args) {
int num = 6;
double[] points = getPoints(num);
double sum = getSum(points);
double max = getMax(points);
double min = getMin(points);
double avg = getAvg(sum, max, min, num);
System.out.println("平均分:" + avg);
}
public static double[] getPoints(int num) {
Scanner sc = new Scanner(System.in);
double[] pointArr = new double[num];
for (int i = 0; i < num; ) {
System.out.println("输入第" + (i + 1) + "个分数");
double score = sc.nextDouble();
if (score >= 0 && score <= 100) {
pointArr[i] = score;
i++;
} else System.out.println("输错了,重新输");
}
return pointArr;
}
public static double getMax(double[] arr) {
double maxNum = arr[0];
for (int i = 1; i < arr.length; i++) {
if (arr[i] > maxNum) {
maxNum = arr[i];
}
}
return maxNum;
}
public static double getMin(double[] arr) {
double minNum = arr[0];
for (int i = 1; i < arr.length; i++) {
if (arr[i] < minNum) {
minNum = arr[i];
}
}
return minNum;
}
public static double getSum(double[] arr) {
double sumResult = 0;
for (double v : arr) {
sumResult += v;
}
return sumResult;
}
public static double getAvg(double sum, double max, double min, int num) {
return (sum - max - min) / num;
}
}
package exercise;
import java.util.Scanner;
public class test5 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("输入原密码:");
int password = sc.nextInt();
int[] passwordArr = getArr(password);
int newPassword = getJiami(passwordArr);
System.out.println(newPassword);
}
public static int[] getArr(int password) {
int temp = password;
int count = 0;
while (temp != 0) {
temp = temp / 10;
count++;
}
int[] passwordArr = new int[count];
for (int i = passwordArr.length - 1; i >= 0; i--) {
passwordArr[i] = password % 10;
password /= 10;
}
return passwordArr;
}
public static int getJiami(int[] passwordArr) {
for (int i = 0; i < passwordArr.length; i++) {
passwordArr[i] += 5;
passwordArr[i] %= 10;
}
for (int i = 0, j = passwordArr.length - 1; i < j; i++, j--) {
int temp = passwordArr[i];
passwordArr[i] = passwordArr[j];
passwordArr[j] = temp;
}
int result = 0;
for (int j : passwordArr) {
result = result * 10 + j;
}
return result;
}
}
package demo;
import java.util.Scanner;
public class test6 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("输入原密码:");
int password = sc.nextInt();
int[] passwordArr = getArr(password);
int newPassword = getJiemi(passwordArr);
System.out.println(newPassword);
}
public static int[] getArr(int password) {
int temp = password;
int count = 0;
while (temp != 0) {
temp = temp / 10;
count++;
}
int[] passwordArr = new int[count];
for (int i = passwordArr.length - 1; i >= 0; i--) {
passwordArr[i] = password % 10;
password /= 10;
}
return passwordArr;
}
public static int getJiemi(int[] password) {
for (int i = 0, j = password.length - 1; i < j; i++, j--) {
int temp = password[i];
password[i] = password[j];
password[j] = temp;
}
for (int i = 0; i < password.length; i++) {
if (password[i] >= 0 && password[i] <= 4) {
password[i] += 10;
}
password[i] -= 5;
}
int result = 0;
for (int j : password) {
result = result * 10 + j;
}
return result;
}
}
package demo;
import java.util.Random;
public class test7 {
public static void main(String[] args) {
int[] arr = {2, 588, 888, 1000, 10000};
Random r = new Random();
for (int i = 0; i < arr.length; i++) {//获取随机索引
int randomIndex = r.nextInt(arr.length);//拿着i跟随机索引randomIndex上的值进行交换
int temp = arr[i];
arr[i] = arr[randomIndex];
arr[randomIndex] = temp;
}
//2.遍历奖池,从0索引开始获取每一个奖项
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
}