Day08-笔记

1.break continue

  • break在任何循环语句的主体部分,均可用break控制循环的流程,break用于强行退出循环,不执行循环中剩余的语句。(break语句也在switch语句中使用)

  • continue语句用在循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定。

  • 关于goto关键字

    • goto关键字很早就在程序设计语言中出现。尽管goto仍是Java的一个保留字,但并未在语言中得到正式使用;Java没有goto。然而,在break和continue这两个关键字的身上,我们仍然能看出一些goto的影子—带标签的break和continue。
    • ”标签“是指后面跟一个冒号的标识符,例如:label:
    • 对Java来说唯一用到标签的地方是在循环语句之前,而在循环之前设置标签的唯一理由是:我们希望在其中嵌套另一个循环,由于break和continue关键字通常只中断当前循环,但若随同标签使用,它们就会中断到存在标签的地方。

break案例

package com.acshuo.struct;

public class BreakDemo {
    public static void main(String[] args) {
        int i = 0;
        while (i<100){
            i++;
            System.out.println(i);
            if (i==30){
                break;
            }
        }
        System.out.println("123");
    }
}

continue案例

package com.acshuo.struct;

public class ContinueDemo {
    public static void main(String[] args) {
        int i = 0;
        while (i<100){
            i++;
            if (i%10==0){
                System.out.println();
                continue;
            }
            System.out.print(i);
        }
    }
}

标签案例

package com.acshuo.struct;

public class LabelDemo {
    public static void main(String[] args) {
        //打印101~150之间的所以质数
        //质数是指大于1的自然数中,除了1和它本身以外不再存在有其他因数的自然数。

        int count = 0;

        //不建议使用!
        outer:for (int i=101;i<150;i++){
            for (int j = 2; j<i/2;j++){
                if (i % j == 0){
                    continue outer;
                }
            }
            System.out.print(i+" ");
        }
    }
}

2.流程控制练习

案例:打印三角形

package com.acshuo.struct;

public class TestDemo {

    public static void main(String[] args) {
        //打印三角形 5行

        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 = 1; j< i ; j++){
                System.out.print("*");
            }
            System.out.println();
        }


    }
}

3.Java方法

System.out.println()

类.对象.方法

  • Java方法是语句的集合,它们在一起执行一个功能。

    • 方法是解决一类问题的步骤的有序组合
    • 方法包含于类或对象中
    • 方法在程序中被创建,在其他地方被引用
  • 设计方法的原则:方法的本意是功能块,就是实现某个功能的语句块的集合。我们设计方法的时候,最好保持方法的原子性,就是一个方法只完成1个功能,这样利于我们后期的扩展。

设计一个方法

package com.acshuo.method;

public class Demo01 {
    //main方法
    public static void main(String[] args) {
//        int sum = add(1, 2);//快捷键Alt+Enter
//        System.out.println(sum);

        test();
    }
    //加法
    public static int add(int a,int b){
        return a+b;
    }
    public static void test(){
        for (int i = 0; i <= 1000; i++) {
            if (i%5==0){
                System.out.print(i+"\t");
                }
            if (i%(5*3)==0){//每行
                System.out.println();
                //System.out.print("\n");
            }
            }
        }
}

4.方法的定义

  • Java的方法类似于其他语言的函数,是一段用来完成特定功能的代码片段,一般情况下,定义一个方法包含以下语法:

  • **方法包含一个方法头和一个方法体。**下面是一个方法的所有部分:

    • 修饰符:修饰符,这是可选的,告诉编辑器如何调用该方法。定义了该方法的访问类型。
    • 返回值类型:方法可能会返回值。returnValueType是方法返回值的数据类型。有些方法执行所需的操作,但没有返回值。在这种情况下,returnValueType是关键字void。
    • 方法名:是方法的实际名称。方法名和参数表共同构成方法签名。
    • 参数类型:参数像是一个占位符。当方法被调用时,传递值给参数。这个值被称为实参或变量。参数列表是指方法的参数类型、顺序和参数的个数。参数是可选的,方法可以不包含任何参数。
      • 形式参数:在方法被调用时用于接收外界输入的数据。
      • 实参:调用方法时实际传给方法的数据。
    • 方法体:方法体包含具体的语句,定义该方法的功能。
修饰符 返回值类型 方法名(参数类型 参数名){
    ...
    方法体
    ...
    return 返回值;
}

Ctrl+/ 取消注释

形式参数与实际参数

package com.acshuo.method;

public class Demo01 {
    //main方法
    public static void main(String[] args) {

        //实际参数:实际调用传递给他的参数
        int sum = add(1, 2);//快捷键Alt+Enter


        System.out.println(sum);

        //test();
    }
    //加法
    //形式参数,用来定义作用的
    public static int add(int a,int b){


        return a+b;
    }
    public static void test(){
        for (int i = 0; i <= 1000; i++) {
            if (i%5==0){
                System.out.print(i+"\t");
                }
            if (i%(5*3)==0){//每行
                System.out.println();
                //System.out.print("\n");
            }
            }
        }
}

定义一个比大小的方法

package com.acshuo.method;

public class Demo02 {
    public static void main(String[] args) {

        int max = max(10, 10);
        System.out.println(max);
    }
    //比大小
    public static int max(int num1,int num2){

        int result = 0;

        if (num1==num2){
            System.out.println("num1==num2");
            return 0;//终止方法
        }
        if (num1>num2){
            result = num1;
        }else {
            result = num2;
        }

        return result;
    }
}

5.方法的重载

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

  • 方法的重载的规则:

    • 方法名称必须相同。
    • 参数列表必须不同(个数不同、或类型不同、参数排列顺序不同等)。
    • 方法的返回类型可以相同也可以不相同。
    • 仅仅返回类型不同不足以成为方法的重载。
  • 实现理论:

    • 方法名称相同时,编译器会根据调用方法的参数个数、参数类型等去逐个匹配,以选择对应的方法,如果匹配失败,则编译器报错。

比大小方法的重载

package com.acshuo.method;

public class Demo02 {
    public static void main(String[] args) {

        double max = max(10.0, 20.0);
        System.out.println(max);
    }
    //比大小
    public static double max(double num1,double num2){

        double result = 0;

        if (num1==num2){
            System.out.println("num1==num2");
            return 0;//终止方法
        }
        if (num1>num2){
            result = num1;
        }else {
            result = num2;
        }

        return result;
    }
    //比大小
    public static int max(int num1,int num2){

        int result = 0;

        if (num1==num2){
            System.out.println("num1==num2");
            return 0;//终止方法
        }
        if (num1>num2){
            result = num1;
        }else {
            result = num2;
        }

        return result;
    }
}
上一篇:Day08_XML


下一篇:Day08-Java基础语法-数据类型扩展及面试题讲解