javaSE21/9/5

JAVA流程控制

For循环

输出1~1000能被5整除的数,并且每行输出三个

public class Demo {
    public static void main(String[] args) {
        for (int i = 1; i <=1000; i++) {
            if (i%5==0){
                System.out.print(i+"\t");//\t为空格,即输出数字后在后面带一个空格
            }//println为输出一个后自动换行,print不换行
            if(i%15==0){
                System.out.println("\n");//\n为手动换行
            }
        }
    }
}

九九乘法表

public class Demo {
    public static void main(String[] args) {
        for (int i = 1; i <= 9; i++) {
            for (int m = 1; m <= i; m++) {

                System.out.print(i +"*"+ m+"="+i*m+" \t");

            }
            System.out.println();
        }
    }
}

增强for循环

  • 主要用于数组和集合
  • 格式:for(声明语句 :表达式){
    //代码句子
    }

break和continue

public class Demo {
    public static void main(String[] args) {
        int i = 0;
        while(i<100){
            i++;
            System.out.println(i);
            if(i==30){
                break;//主要用于终止循环和switch语句,break会跳过循环,直接执行循环外的语句
            }
        }
        System.out.println(i);
        System.out.println("==============================");
        while (i<100){
            i++;
            if (i%10==0){
                continue;//会结束本次循环,进行下一次循环,如果满足continue的条件在循环内的continue下面的语句不会执行
            }
            System.out.println(i);
        }
    }
}

循环练习

打印三角形

public class Demo {
    public static void main(String[] args) {
        for (int i = 1; i <= 5; i++) {
            for (int j = 5; j >= i; j--) {
                System.out.print(" ");
            }
            for (int j = 1; j <= i; j++) {
                System.out.print("*");
            }
            for (int j = 2; j <= i; j++) {
                System.out.print("*");
            }
            System.out.println();
        }
    }
}

JAVA方法

  • java方法是语句的集合,他们在一起执行一个功能
  • 方法是解决一类问题的步骤的有序组合
  • 方法包含于类或对象中
  • 方法在程序中被创建,在其他地方被引用
  • 尽量保持方法的原子性,一个方法只完成一个功能

方法定义格式:

修饰符 返回值类型 方法名(参数类型 参数名){
方法体
return 返回值;
}

方法调用

对象名.方法名(实参列表)

public class Demo {
    public static void main(String[] args) {
        int max = max(2,2);
        System.out.println(max);
    }
    public static int max(int a,int b){
        int num = 0;
        if(a == b){
            System.out.println("a与b一样大");
            return 0;
        }else if(a>b){
            num = a;
        }else{
            num = b;
        }
        return num;
    }
}

方法重载

  • 重载就是在一个类中,有相同的函数名称,但形参不同的函数

可变参数

  • 在方法声明中,在指定参数类型后加一个省略号(...)
  • 例:普通参数:int i;可变参数:int...i;
  • 一个方法中只能指定一个可变参数,它必须是方法的最后一个参数,任何普通的参数必须在它之前声明

递归

  • 递归就是A方法调用A方法,自己调用自己
  • 递归结构包括两部分

    递归头:确定什么时候不调用自身方法。如果没有头,将陷入死循环
    递归体:确定什么时候需要调用自身方法
  • 递归不能用于大量数据,少量可以
public class Demo {
    public static void main(String[] args) {
        System.out.println(dg(4));
    }
    //阶乘
    public static int dg(int i){//定义一个int类型的递归方法
        if (i==1){//如果i=1,返回i
           return 1;
        }else{//不是1,返回dg方法,直到为1
            return i*dg(i-1);
        }
    }
}

数组

定义格式:
数组类型[] 数组名 = new 数组类型[数组长度]

public class Demo {
    public static void main(String[] args) {
        int[] arr = new int[3];
        int sum = 0;
        arr[0] = 12;
        arr[1] = 23;
        arr[2] = 10;
        for (int i = 0; i < arr.length; i++) {
            sum = sum+arr[i];

        }
        System.out.println(sum);
    }
}

静态初始化:

int[] arr = {1,2,3};

数组的使用

  • For-Each循环
  • 数组作为方法入参
public class Demo {
    public static void main(String[] args) {
        int[] arr = {1,2,3,4,5};
        printArr(arr);

    }public static void printArr(int[] arr){
        int sum = 0;
        for (int i = 0; i < arr.length; i++) {
            sum+=arr[i];

        }
        System.out.println(sum);
    }

}
  • 数组作为返回值
public class Demo {
    public static void main(String[] args) {
        int arr[] = {1,2,3,4,5};
        int[] reverse = reverse(arr);//有返回值用变量接收
        printarr(reverse);//无返回值可直接调用
    }
    //反转数组
    public static int[] reverse(int[] arr){
        int[] result = new int[arr.length];//定义一个返回结果,长度为原来数组的长度
        for (int i = 0,j = result.length-1; i < arr.length; i++,j--) {
            //i为原来数组的索引,j为反转数组的索引,i有约束条件即可
            result[j] = arr[i];
        }
        return result;
    }
    //打印数组
    public static void printarr(int[] arr){
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }
    }
}
posted @ 2021-09-05 10:46  想吃坚果  阅读(37)  评论(0)    收藏  举报