java循环控制语句与方法(函数)

这篇博客介绍了Java编程中的方法定义、重载、参数传递及循环控制语句,包括`continue`、`break`和`return`的使用。通过一个猜数字小游戏的实例展示了如何运用这些概念。此外,还提供了两个方法,一个用于求整数数组的最大值和最小值,另一个用于创建并接收用户定义的数组。
摘要由CSDN通过智能技术生成

java循环控制语句与方法

方法定义

  • 方法:
    一段具有独立功能的代码块,不调用就不执行。可以提高代码的复用性
  • 方法需要定义在类中方法外,方法可以在方法中调用,但不能嵌套定义
  • 定义方法前首先要明确它的返回值类型与形参的个数和类型
  • 方法被调用时会进入栈中,这一过程叫做压栈,调用完后方法弹栈释放,遵循栈的先进后出原则

方法的定义格式

public static 返回值类型 方法名(形参){	//若没有返回值,通常写为public static void 方法名(形参)
	功能代码;
	return 返回值;
}
  • 方法的三种调用:
//没有返回值的方法
方法名(参数);
//有返回值
//直接打印返回值
System.out.println(方法名(参数));
//用一个变量接收返回值
返回值类型 变量名 = 方法名(参数);

方法的重载

  • 若两个或多个方法方法名相同,但参数类型不同或参数个数不同或参数顺序不同,我们称这构成了方法的重载
  • 方法的参数传递
    传递基本类型,记录的为"具体数值",形参的改变,不会影响实参
    传递引用类型,记录的为"地址值",形参的改变,会影响实参
    例:
//接收两个int类型的值并返回除商
public static int division(int num1, int num2){	
	return num1 / num2;
}
//接收两个double类型的值并返回除商
public static double division(double num1, double num2){ 
	return num1 / num2;
}
//接收三个double类型的值并返回除商
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);
        //给while循环起一个名字lone
        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();
           //选择难度并调用numGuess方法
           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;  //跳出lone,即最外层while循环
                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;

//定义一个方法, 可以同时获取一个int类型数组的max和min
public class MinMax {
    public static void main(String[] args) {
        //c
        //提示用户并使用creat方法创建一个整数数组
        System.out.println("请输入数组长度:");
        //创建对象
        Scanner sc = new Scanner(System.in);
        int num1 = sc.nextInt();
        int[] arr = creat(num1);
        //使用min_Max输出最大最小值
        System.out.println("min:" + minMax(arr)[0]);
        System.out.println("max:" + minMax(arr)[1]);
    }
    //定义方法minMax,接收一个int数组,返回值为一个数组
    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;
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值