方法定义
- 方法:
一段具有独立功能的代码块,不调用就不执行。可以提高代码的复用性 - 方法需要定义在类中方法外,方法可以在方法中调用,但不能嵌套定义
- 定义方法前首先要明确它的返回值类型与形参的个数和类型
- 方法被调用时会进入栈中,这一过程叫做压栈,调用完后方法弹栈释放,遵循栈的先进后出原则
方法的定义格式
public static 返回值类型 方法名(形参){
功能代码;
return 返回值;
}
方法名(参数);
System.out.println(方法名(参数));
返回值类型 变量名 = 方法名(参数);
方法的重载
- 若两个或多个方法方法名相同,但参数类型不同或参数个数不同或参数顺序不同,我们称这构成了方法的重载
- 方法的参数传递
传递基本类型,记录的为"具体数值",形参的改变,不会影响实参 传递引用类型,记录的为"地址值",形参的改变,会影响实参 例:
public static int division(int num1, int num2){
return num1 / num2;
}
public static double division(double num1, double num2){
return num1 / num2;
}
public static double division(double num1, double num2, double num3){
return num1 / num2 / num3;
}
循环控制语句
- continue:
跳过本次循环,继续下次循环 - break:
跳出当前循环或指定循环 - return
使方法弹栈,结束当前方法
练习
- 猜字谜小游戏,设置1-100,1-1000,1-10000四种难度,以及退出选项
在猜数字的过程中也可随时返回难度选择界面 代码:
import java.util.Random;
import java.util.Scanner;
public class GuessNum {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
lone:
while(true){
System.out.println("欢迎来到猜数字小游戏");
System.out.println("1. 1-100难度");
System.out.println("2. 1-1000难度");
System.out.println("3. 1-10000难度");
System.out.println("4. 退出游戏");
int num1 = sc.nextInt();
switch (num1){
case 1:
numGuess(1,100);
break;
case 2:
numGuess(1,1000);
break;
case 3:
numGuess(1,10000);
break;
case 4:
System.out.println("bye~");
break lone;
default:
System.out.println("请输入正确的选项");
break;
}
}
}
public static void numGuess(int num1, int num2){
Scanner sc = new Scanner(System.in);
Random r = new Random();
int num4 = r.nextInt(num2) + 1;
System.out.println("欢迎选择难度为" + num1 + "到" + num2 + "猜数字小游戏,游戏开始!(输入10001回到初始选择界面)");
while(true){
System.out.print("请输入你猜的结果:");
int num3 = sc.nextInt();
if ((num3 < num1 || num3 > num2) && num3 != 10001){
System.out.println("请输入正确的数字!");
}else if (num3 == 10001){
break;
}else{
if (num3 > num4){
System.out.println("猜大了");
}else if (num3 < num4){
System.out.println("猜小了");
}else{
System.out.println("恭喜你猜中了");
break;
}
}
}
}
}
- 定义两个方法,方法1可以求出一个整数数组内的最大值max与最小值min,方法2则由用户定义一个任意长度的数组并使用键盘录入数组的值,调用方法,求出用户自定义长度与元素的数组的最大值与最小值并打印
代码:
import java.util.Scanner;
public class MinMax {
public static void main(String[] args) {
System.out.println("请输入数组长度:");
Scanner sc = new Scanner(System.in);
int num1 = sc.nextInt();
int[] arr = creat(num1);
System.out.println("min:" + minMax(arr)[0]);
System.out.println("max:" + minMax(arr)[1]);
}
public static int[] minMax(int[] arr){
int min = arr[0];
int max = arr[0];
for (int i = 1; i < arr.length; i++) {
if (arr [i] < min){
min = arr[i];
}else if (arr[i] > max){
max = arr[i];
}
}
int[] brr = {min, max};
return brr;
}
public static int[] creat(int ber){
int[] arr = new int[ber];
Scanner sc = new Scanner(System.in);
for (int i = 0; i < arr.length; i++) {
System.out.println("请输入第" + (i + 1) + "个数");
arr[i] = sc.nextInt();
}
return arr;
}
}
|