java之路,学无止境,第七天核心知识

来源:互联网 发布:经典马自达3轮毂数据 编辑:程序博客网 时间:2024/05/17 10:43

微笑微笑微笑已经对java学习了一周的时间了,本次主要对一些精炼的例题和其中的BUG进行讲解,按照学校安排,今天是习题课,对一周内的学习进行巩固.下面分享给大家.

 定义一个数组,元素有:{88,55,77,33,66,44};

              1、定义一个方法,求出数组中的最大值

              2、定义一个方法,将数组中的内容反转

              3、定义一个方法,求出数组中所有偶数的和

        并将相应的结果打印

package com.itheima.test1;
import java.util.Arrays;
*步骤:
*    1.定义数组
*    2.定义一个方法求最大值的方法.
*        两点明确:
*            参数:int 数组
*            返回值类型:int
*        1.定义变量max 把数组0号索引的元素赋值给max
*        2.if判断 依次拿着数组元素和max比较 .
*        3.数组元素大于max  把数组元素的值赋给max.
*        4.return max;
*    3.定义方法将数组中的内容反转    
*        1.两点明确:
*            参数:int 数组
*            返回值类型:void
*        
*        2.for循环拿到每一个元素.
*        定义 i=0,j=arr.length-1; 判断i<j;i++,j--
*            把temp=arr[i]
*            arr[i]=arr[j]
*            arr[j]=temp;
*        4.定义方法 遍历新数组 .最后调用方法    
*    4.定义一个方法,求出数组中所有偶数的和
*        1.两个明确
*            参数:int 数组
*            返回值类型:int
*        定义sum变量记录累加和
*        2.遍历数组每一个元素
*        3.判断%2==0;
*        4. 满足要求sum累加
*        5.返回sum
*/

public class Demo2 {
    public static void main(String[] args) {
        // 定义数组
        int[] arr = { 88, 55, 77, 33, 66, 44 };
        // 调用求最大值的方法
        int max = max(arr);
        System.out.println("数组元素的最大值是:" + max);
        // 调用反转数组的方法
        reverse(arr);
        // 翻转后的数组
        System.out.print("翻转后的数组是:");
        printArray(arr);
        // 调用求数组中所有偶数的和的方法
        System.out.println();
        int sum = getSum(arr);
        System.out.println("数组的满足元素是偶数的和是:" + sum);

    }

    // 遍历翻转后的数组
    private static void printArray(int[] arr) {
        System.out.print("[");
        for (int i = 0; i < arr.length; i++) {
            // 打印里面的每个元素
            if (i != arr.length - 1) {
                System.out.print(arr[i] + ",");
            } else {
                System.out.print(arr[i] + "]");

            }

        }
    }

    // 求数组中所有偶数的和的方法
    private static int getSum(int[] arr) {
        // 定义sum 记录累加和
        int sum = 0;
        // 遍历获取每一个元素
        for (int i = 0; i < arr.length; i++) {
            // 判断%2==0;
            if (arr[i] % 2 == 0) {
                sum += arr[i];
            }
        }
        return sum;
    }
//对数组进行反转
    private static void reverse(int[] arr) {
        // 定义 i=0,j=arr.length-1; 判断i<j;i++,j--i向右移动.j向左移动
        for (int i = 0, j = arr.length - 1; i < j; i++, j--) {
            // 把里面的元素交换
            int temp = arr[i];
            arr[i] = arr[j];
            arr[j] = temp;

        }

    }

    // 求数组最大值的方
    private static int max(int[] arr) {
        // 定义max 把数组第一个元素赋给他
        int max = arr[0];
        // 遍历数组获取每一个数组元素
        for (int i = 1; i < arr.length; i++) {
            // 判断数组元素和max比较 如果比max大
            if (arr[i] > max) {
                // 就把元素赋给max
                max = arr[i];
            }
        }
        // 返回结果
        return max;
    }

}

这道题对数组,数组的反转,数组遍历,求和求最值做了一个综合的考验.

注意几点BUG

1,在数组遍历的时候用到的是arr.length,在数组求索引时候是arr.length-1

2,方法封装的时候要明确括号内变量的定义是否正确,以保证在main方法中

   调用的时候可以正常使用.

3,因为涉及到循环,如果需要发现BUG,赢在debug里面反复按F6进行找错,

  一般情况下,鼠标在定义方法的第二句前面双击确认debug的开始点.

4,该题中需要将最大值返回,所以定义方法的时候不能使用void,而且在方法的最后

要在循环外将最大值返回,而不是在内返回.

微笑微笑微笑今天的阶段性考试还算圆满通过,希望各位一起再接再厉


原创粉丝点击