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