day08
1.无参无返回类型方法
//练习,输出1--100中的每个数,要求使用无参无返回类型的方法完成
语法格式:
public static void 方法名称(){
方法体
}
代码省略
2.无参带返回类型方法
//练习;计算1+2的和,要求使用方法完成
分析:
---该题只有一个结果,此时就可以编写为带返回值类型的方法完成
---带返回类型的方法语法格式
public static 返回类型 方法名称(){}
---该方法返回该题的结果,因此返回类型编写,为对应结果的类型
返回类型编写为目前所学9种数据类型之一;
---必须在该方法体中通过return将结果返回
---使用变量接受,然后在输出变量中的值
int a = Method03.sum();//点调用方法,然后将方法返回的结果,再赋给左侧的变量名称a
public static int sun(){ int s=1+2; return s; } public static void main(String[] args){ int a = Method03.sum(); System.out.println(a); }
3.break continue return区别:
break:表示中断,可以再循环中使用,循环中断
continue:表示继续,只能在循环中使用,当遇到continue时
则结束本次(当次)循环,继续执行下一次循环
return:表示返回,只能在方法中使用,返回到方法的调用处
特殊形式:当方法是无返回类型时,则可以在方法体中编写return
练习:
class Method06{ //输出:1 2 Hello public static void print1(){ for(int i=1;i<=5;i++){ if(i==3){ break; } System.out.print(i+"\t"); } System.out.println("Hello"); } //输出:1 2 4 5 yes public static void print2(){ for(int i=1;i<=5;i++){ if(i==3){ continue; } System.out.print(i+"\t"); } System.out.println("yes"); } //输出:1 2 public static void print3(){ for(int i=1;i<=5;i++){ if(i==3){ return; } System.out.print(i+"\t"); } System.out.println("OK"); } public static void main(String[] args){ print1(); print2(); print3(); } }
4.练习:根据输入的星期,得到结果
class Method07{ public static String getInfo(){ String week="星期五"; switch(week){ case "星期一": case "星期二": case "星期四": case "星期六": return "学习": //break;//出现编译错误,是无法访问的语句 //原因:该条语句之上有return,当遇到return就返回调用处 case "星期三": case "星期五": return "自习"; //break; dafault: return "休息"; //break; } } }
5.带参数无返回类型方法
练习:使用方法完成,输出1--n中的每个数
分析:--该题目中有未知的数,因此可以编写为带参数的方法
--每个参数语法格式:数据类型 参数名称
多个采纳数之间使用英文逗号隔开
--方法中未知的编写为参数,称为形式参数简称形参
--调用方法时参数为已知的称为实际参数简称实参
也就是实参的值赋给形参变量,必须保证实参与形参的个数、类型、顺序一致
class Method08{ public static void print(int n){//n就是形参 for(int i=1;i<=n;i++){ System.out.println(i); } } public static void main(String[] args){ //调用本类中的print方法 print(5);//5就是实参 } }
//练习:计算两个数的差,可以编写为带参无返回类型的方法完成
public static void sub(double num1,doublenum2){ double result=num1-num2; System.out.println(num1+"-"+nuim2+"="+result); } public static void main(String[] args){ double num1=5.6; double num2=0.9; sub(num1,num2); }
6.内存分析总结:
--方法中声明的变量为局部变量,其中形参也属于局部变量
--方法执行完毕,该方法出栈,同时该方法的局部变量也随之释放空间
--各自方法中声明的局部变量可以同名,没有任何影响,各自都是独立的
7.带参带返回类型方法
//练习:判断一个年龄,输出老年,中年,青年,少年
public sattic String getInfo(int age){ if(age>=65){ return "老年"; }else if(age>=30){ return "中年"; }else if(age>=18){ return "青年"; }else{ return "少年"; } } public static void mian(String[] args){ Scanner input=new Scanner(System.in); System.out.print("请输入年龄:"); int age=input.nextInt(); System.out.println(getInfo(age)); }
//练习:判断一个三位数是否是水仙花数
--该题有未知的三位数,编写为参数,int num
--该题有两种情况,但是只得到一个结果,因此可以编写为带返回类型
--当一个题中是否这种情况时,一般返回类型编写boolean
class Method09{ public static boolean isFlag(int num){ //先判断是否是三位数 if(num>=100&&num<=999){ //获取当前数num中的各个位 int gw=num%10,sw=num/10%10,bw=num/100; //计算各个位的立方和 int sum=gw*gw*gw+sw*sw*sw+bw*bw*bw; //判断立方和是否与当前数num相等 /*if(sum==num){ return true; }esle{ return false; }*/ return sum==num; }else{ return false;//false表示不是水仙花数 } } public static void main(String[] args){ System.out.println(isFlag(123)); } }
//练习编写方法实现输出所有三位数的水仙花数
class Method10{ public static void print(){ for(int i=100;i<=999;i++){ if(Method09.isFlag(i)){ System.out.println(i); } }
}
public static void main(String[] args){
print();
}
}