RE:JAVA学习-方法调用

一.方法:
1)封装一段特定的业务逻辑功能
2)方法尽可能的独立,一个方法只干一件事
3)方法可以被反复调用多次
4)减少代码的重复,有利于代码的维护,有利于团队的协作
二.方法的定义:
修饰词 返回值类型 方法名(参数列表){
方法体
}
三.方法的调用:
1)无返回值: 方法名(有参传参);
2)有返回值: 数据类型 变量 = 方法名(有参传参);
四.return的用法:
1)return 值; //1.1)结束方法的执行 1.2)返回结果给调用方
2)return; //2.1)结束方法的执行(只能用在无返回值的方法中)

public static void main(String[] args) {
    int[]arr=generateArray(6,100);
    printArray(arr);
}
public static int[] generateArray(int n,int num){
    int[] arr=new int[n];
    for(int i=0;i<arr.length;i++){
        arr[i]=(int)(Math.random()*num+1);
    }
    return arr;
}
public static void printArray(int[] arr){
    for(int i=0;i<arr.length;i++){
        System.out.print(arr[i]+"   ");
    }
}

使用方法来完成如下实例:
猜字符小游戏
一.设计数据结构
1>char[] chs;//随机字符数组
2>char[] input;//用户输入的字符数组
3> //int letterRight;//字符 对的 个数
//int positionRight;//位置 对的个数
int[] result;//对比的结果
4>int score;//得分

二.设计算法:
1>主方法:
public static void main(String[] arg){
}
2>生成随机字符数组:
public static ? generate(int len){
char[] chs=new char[len];
}
3>对比:随机字符数组与用户输入字符组
public static int[] check(char[] chs,char[] input){
int[] result=new int[2];
//…
return result;
}
三.设计算法:方法体

public class Guess {

    public static void main(String[] args) {
        Scanner scan=new Scanner(System.in);
        int n;
        while(true){
        System.out.println("请输入游戏级别(5,7,9)");
        n=scan.nextInt();//游戏级别
        if(n==5||n==7||n==9)break;
        }
        int count=0;
        char[] chs=generate(n);
//      System.out.println(chs);//将随机生成的字母输出 测试时使用
        System.out.println("游戏开始,请输入你所猜的字母(共有"+n+"个字母--EXIT--退出)");
        while(true){
            String str=scan.next().trim().toUpperCase();//去空格 转大写
            if(str.equals("EXIT")){
                System.out.println("退出游戏");
            }else{
                char[] ch=str.toCharArray();
                int result[]=check(chs,ch);
                if(result[0]==chs.length){
                    int score=100*chs.length-count*10;
                    System.out.println("猜对了,得分:"+score);
                }else{
                    count++;
                    System.out.println("你猜对了"+result[1]+"个字符,其中"+result[0]+"个字符的位置正确(共猜"+count+",EXIT--退出)");
                }
            }
        }
    }
    public static char[] generate(int n){
        char[] chs=new char[n];
        char[] letters = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J',
                'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V',
                'W', 'X', 'Y', 'Z' };
        boolean[] flags=new boolean[letters.length];
        for(int i=0;i<chs.length;i++){
            int index;
            do{
                index=(int)(Math.random()*letters.length);
            }while(flags[index]);
            flags[index]=true;
            chs[i]=letters[index];
        }
        return chs;
    }
    public static int[] check(char[] chs,char[] ch){
        int[] result=new int[2];//分别判断猜对字符的个数和位置
        for(int i=0;i<chs.length;i++){
            for(int j=0;j<ch.length;j++){
                if(chs[i]==ch[j]){
                    result[1]++;//猜对字符的个数+1
                    if(i==j)result[0]++;//猜对字符的位置+1
                    break;
                }
            }
        }
        return result;
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值