思维导图:
1.方法
例子:
public class Ways{
public static void main(String[] args){
int c1 = sum(5,6);
System.out.println("两数和为:" + c1); //调用方法
}
//定义一个求和的方法
public static int sum(int a,int b){
int c = a + b;
return c;
}
}
2.方法常见问题:
3.方法的调用流程
4.方法的参数传递机制(基本类型和引用类型)
基本类型:无论对形参做哪些改变,实参不会变化,借给他用一下,原样返回。 (输出结果10,20,10)
引用类型:形参发生变化,实参也会变化。把东西给他,让他帮忙改造。
5.方法重载
6.return关键字
练习小程序:
1.求类项和并输出
public class Ways{
public static void main(String[] args){
System.out.println("和为:" + sum(50));
}
public static int sum(int n){
int sum1 = 0;
for (int i = 1;i <= n; i++ ) {
sum1 += i;
}
return sum1;
}
}
运行结果: (不要在for循环的执行体里面定义变量)
2.判断奇偶
import java.util.Scanner;
public class Ways{
public static void main(String[] args){
//输入待判断的数
System.out.print("请输入要判断的数:" );
Scanner myscanner = new Scanner(System.in);
int numjudge = myscanner.nextInt();
judge(numjudge);//调用judge()
}
//判断奇偶
public static void judge(int m){
if(m % 2 == 0)
System.out.println("该数为偶数!");
else
System.out.println("该数为奇数!");
}
}
运行结果:
3.用方法调用输入输出数组并求最大值
import java.util.Scanner;
public class Ways2{
public static void main(String[] args){
Scanner myscanner = new Scanner(System.in);
System.out.println("您要输入几个元素?");
int n = myscanner.nextInt();//输入元素个数
int[] array=new int[n];
arrIn(n,array);//输入
arrOut(n,array);//输出
System.out.print("\n");
System.out.print("最大值为:"+ arrMax(n,array));//输出最大值
}
//输入方法
public static void arrIn(int n,int[] arr){
Scanner myscanner = new Scanner(System.in);
for (int i = 0;i < n ;i ++ ) {
System.out.print("请输入第"+ (i+1)+"个值:");
arr[i] = myscanner.nextInt();
}
}
//输出方法
public static void arrOut(int n,int[] arr){
System.out.print("您输入的数组元素为:");
for (int i = 0;i < n ;i ++ ) {
System.out.print(arr[i]+"\t");
}
}
//比较最大值
public static int arrMax(int n,int[] arr){
int max = arr[0];
for (int i = 0;i < n ;i ++ ) {
if (arr[i]>max)
max = arr[i];
}
return max;//返回最大值
}
}
运行结果:
4.数组中查找元素
import java.util.Scanner;
public class Ways3{
public static void main(String[] args){
Scanner myscanner = new Scanner(System.in);
int[] array={11,22,33,44,55}; //定义数组
System.out.print("请输入你要找的元素:");
int x = myscanner.nextInt(); //输入x
arrCheck(x,array);
}
public static void arrCheck(int x,int[] arr){
int sum = 0;
OUT:
{
for (int i = 0;i < arr.length ;i ++ ) {
if (x == arr[i]) {
System.out.print("在数组中查找到元素,索引为:"+ i);
break OUT;
}
}
System.out.print("没有您要查找的元素!");
}
}
}
运行结果:
在写这个程序的时候浅试了一下OUT{}然后在找到的时候break OUT一下。没想到居然成功了哈哈。
5.判断两个数组相等
public class WaysCompare{
public static void main(String[] args){
int[] a1={10,20,30};
int[] a2={10,20,30};
System.out.print(compare(a1,a2));
}
public static boolean compare(int arr1[],int arr2[]){
int n = 0;
if(arr1.length == arr2.length){
for (int i=0 ;i<arr1.length ;i++ ) {
if(arr1[i] != arr2[i]){
n=n;
}else
n += 1;
}
}else
System.out.print("两个数组不相等!");
if(n==3)
return true;
else
return false;
}
运行结果:true
这一题我用的方法不太好,下面是老师的代码:
public class WaysCompare{
public static void main(String[] args){
int[] a1={10,20,30};
int[] a2={10,20,30};
System.out.print(compare(a1,a2));
}
public static boolean compare(int arr1[],int arr2[]){
int n = 0;
if(arr1.length == arr2.length){
for (int i=0 ;i<arr1.length ;i++ ) {
if(arr1[i] != arr2[i])
return false;
}
return true;
}else
return false;
}
逻辑是:如果不相等就return false,如果for循环结束了还没有return false就return true。