一.方法: 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; } }