一、Debug

1. Debug

1.1 Debug概述

Debug:是供程序员使用的程序调试工具,它可以用于查看程序的执行流程,也可以用于追踪程序执行过程来调试程序。

1.2 Debug操作流程

Debug调试,又被称为断点调试,断点其实是一个标记,告诉我们从哪里开始查看

debug java 模式 java的debug_debug java 模式

1.3 Debug使用

查看循环求偶数和的执行流程;

查看方法调用的执行流程。

注意事项: 如果数据来自于键盘输入,一定要记住输入数据,不然就不能继续往下查看了。

二、基础知识练习

import java.util.Scanner;

public class Test1 {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入星期数:");
        int week1=sc.nextInt();
        int week2=sc.nextInt();
        weight1(week1);
        weight2(week2);
    }
    public static void weight1(int week){
        switch (week){
            case 1:
                System.out.println("跑步");
                break;
            case 2:
                System.out.println("游泳");
                break;
            case 3:
                System.out.println("慢走");
                break;
            case 4:
                System.out.println("动感单车");
                break;
            case 5:
                System.out.println("拳击");
                break;
            case 6:
                System.out.println("爬山");
                break;
            case 7:
                System.out.println("好好吃一顿");
                break;
            default:
                System.out.println("输入星期数有误!");
        }
    }
    public static void weight2(int week){
        if(week==1){
            System.out.println("跑步");
        }else if(week==2){
            System.out.println("游泳");
        }else if(week==3){
            System.out.println("慢走");
        }else if(week==4){
            System.out.println("动感单车");
        }else if(week==5){
            System.out.println("拳击");
        }else if (week==6){
            System.out.println("爬山");
        }else if(week==7){
            System.out.println("好好吃一顿");
        }else {
            System.out.println("输入星期数有误!");
        }
    }
}

debug java 模式 java的debug_System_02

public class Test2 {
    public static void main(String[] args) {
        int x=1;
        for (x=1;x<=100;x++){
            if(x%10==7|x/10%10==7|x%7==0){
                System.out.println(x);
            }
        }
    }
}

debug java 模式 java的debug_System_03

public class Test3 {
    public static void main(String[] args) {
        int[] arr=new int[20];
        arr[0]=1;
        arr[1]=1;
        int i=0;
        for (int x=2;x<arr.length;x++){
            arr[x]=arr[x-1]+arr[x-2];
            i=arr[x];
        }
        System.out.println("第二十个月兔子对数:"+i);
    }
}

debug java 模式 java的debug_初始化_04

public class Test4 {
    public static void main(String[] args) {
        for(int x=0;x<=20;x++){
            for (int y=0;y<=33;y++){
                int z=100-x-y;
                if(z%3==0&&x*5+y*3+z/3==100){
                    System.out.print("鸡翁:"+x+"只,鸡母:"+y+"只,鸡雏:"+z+"只。");
                }
            }
            System.out.println();
        }
    }
}

debug java 模式 java的debug_数组_05

public class Test5 {
    public static void main(String[] args) {
        int[] arr={68,27,95,88,171,996,51,210};
        int sum=0;
        for (int i=0;i<arr.length;i++){
            if(arr[i]%10!=7&&arr[i]/10%10!=7&&arr[i]%2==0){
                sum+=arr[i];
            }
        }
        System.out.println(sum);
    }
}

debug java 模式 java的debug_System_06

public class Test06 {
    public static void main(String[] args) {
        //定义两个数组,分别使用静态初始化完成数组元素的初始化
        int[] arr = {11, 22, 33, 44, 55};
        //int[] arr2 = {11, 22, 33, 44, 55};
        int[] arr2 = {11, 22, 33, 44, 5};
        //调用方法,用变量接收
        boolean flag = compare(arr,arr2);
        //输出结果
        System.out.println(flag);
    }
    //定义一个方法,用于比较两个数组的内容是否相同
    public static boolean compare(int[] arr, int[] arr2) {
        //首先比较数组长度,如果长度不相同,数组内容肯定不相同,返回false
        if(arr.length != arr2.length) {
            return false;
        }
        //其次遍历,比较两个数组中的每一个元素,只要有元素不相同,返回false
        for(int x=0; x<arr.length; x++) {
            if(arr[x] != arr2[x]) {
                return false;
            }
        }
        //最后循环遍历结束后,返回true
        return true;
    }
}

debug java 模式 java的debug_java_07

public class Test07 {
    public static void main(String[] args) {
        //定义一个数组,用静态初始化完成数组元素的初始化
        int[] arr = {19, 28, 37, 46, 50};
        //键盘录入要查找的数据,用一个变量接收
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入要查找的数据:");
        int number = sc.nextInt();
        //调用方法
        int index = getIndex(arr, number);
        //输出索引变量
        System.out.println("index: " + index);
    }
    //查找指定的数据在数组中的索引
    public static int getIndex(int[] arr, int number) {
        //定义一个索引变量,初始值为-1
        int index = -1;
        //遍历数组,获取到数组中的每一个元素
        for(int x=0; x<arr.length; x++) {
            //拿number和数组中的每一个元素进行比较
            //如果值相同,就把该值对应的索引赋值给索引变量,并结束循环
            if(arr[x] == number) {
                index = x;
                break;
            }
        }
        //返回索引
        return index;
    }
}

debug java 模式 java的debug_debug java 模式_08

public class Test08 {
    public static void main(String[] args) {
        //定义一个数组,用静态初始化完成数组元素的初始化
        int[] arr = {19, 28, 37, 46, 50};
        //调用反转的方法
        reverse(arr);
        //遍历数组
        printArray(arr);
    }
	//定义反转方法
    public static void reverse(int[] arr) {
        //循环遍历数组,这一次初始化语句定义两个索引变量,判断条件是开始索引小于等于结束索引
        for (int start = 0, end = arr.length - 1; start <= end; start++, end--) {
            //变量交换
            int temp = arr[start];
            arr[start] = arr[end];
            arr[end] = temp;
        }
    }
    //定义用于打印数组的方法
    public static void printArray(int[] arr) {
        System.out.print("[");
        for (int x = 0; x < arr.length; x++) {
            if (x == arr.length - 1) {
                System.out.print(arr[x]);
            } else {
                System.out.print(arr[x] + ", ");
            }
        }
        System.out.println("]");
    }
}

debug java 模式 java的debug_初始化_09

public class Test9 {
    public static void main(String[] args) {
        //定义一个数组,用动态初始化完成数组元素的初始化,长度为6
        int[] arr = new int[6];

        //键盘录入评委分数
        Scanner sc = new Scanner(System.in);
        //由于是6个评委打分,所以,接收评委分数的操作,用循环改进
        for(int x=0; x<arr.length; x++) {
            System.out.println("请输入第" + (x + 1) + "个评委的打分:");
            arr[x] = sc.nextInt();
        }
        //调用方法获取数组中的最高分
        int max = getMax(arr);
        //调用方法获取数组中的最低分
        int min = getMin(arr);
        //调用方法获取数组中的所有元素的和
        int sum = getSum(arr);
        //按照计算规则进行计算得到平均分
        int avg = (sum - max - min) / (arr.length - 2);
        //输出平均分
        System.out.println("选手的最终得分是:" + avg);

    }
    //定义求和方法
    public static int getSum(int[] arr) {
        int sum = 0;
        for(int x=0; x<arr.length; x++) {
            sum += arr[x];
        }
        return sum;
    }
	//定义求最小值方法
    public static int getMin(int[] arr) {
        int min = arr[0];
        for(int x=1; x<arr.length; x++) {
            if(arr[x] < min) {
                min = arr[x];
            }
        }
        return min;
    }
	//定义求最大值方法
    public static int getMax(int[] arr) {
        int max = arr[0];
        for(int x=1; x<arr.length; x++) {
            if(arr[x] > max) {
                max = arr[x];
            }
        }
        return max;
    }
    //定义遍历数组方法
    public static void printArray(int[] arr) {
        System.out.print("[");

        for (int x = 0; x < arr.length; x++) {
            if (x == arr.length - 1) {
                System.out.print(arr[x]);
            } else {
                System.out.print(arr[x] + ", ");
            }
        }
        System.out.println("]");
    }
}