Java零基础入门笔记4-Java流程控制

1、概述

  • 流程控制包含三种形式:顺序结构选择结构循环结构

2、选择结构

2.1、多重if结构

用代码来说明多重if的优势,对比一下两种写法:

public class MultipleIf {

    public static void main(String[] args) {
        /*成绩大于等于90,输出"优";
            大于等于80且小于90,输出"良";
            大于等于60且小于80,输出"中";
            小于60,输出"不及格".*/
        Scanner scanner = new Scanner(System.in);
        int score = scanner.nextInt();

        if (score >= 90) {
            System.out.println("优");
        }
        if (score >= 80 & score < 90) {
            System.out.println("良");
        }
        if (score >= 60 & score < 80) {
            System.out.println("中");
        }
        if (score < 60) {
            System.out.println("不及格");
        }

        //用多重if来进行改写
        if (score>=90) {
            System.out.println("优");
        }else if (score>=80) {
            System.out.println("良");
        }else if (score>=60) {
            System.out.println("中");
        }else {
            System.out.println("不及格");
        }

        scanner.close();
    }
}

2.2、嵌套if结构

  • 嵌套if结构即将整个if块插入另一个if块当中。例子略。

2.3、switch语句

  • if和switch的区别:
    • if结构判断条件为布尔类型
    • if机构判断条件是一个范围
    • switch结构判断条件是常量值
  • switch结构
    • break语句不是必须的;
    • default语句可以省略;
    • 若case里的常量和条件都不匹配,则执行default语句;
    • 若无break语句则会顺序执行;
    • 在JDK7.0以后,以下代码中表达式的值可以使基本数据类型的byte、short、int、char以及String类型。
switch (表达式) {
    case 常量表达式1:
        语句1;
        break;
    case 常量表达式2:
        语句2;
        break;
    default:
        语句3;
        break;
}

3、循环结构

  • 循环结构主要有while循环do-while循环for循环
  • while循环:当循环条件的值为true时就执行循环体中的语句,否则会跳出循环。
while (循环条件) {
    语句;
}
  • do-while
    • do-while循环至少执行一次
    • 循环条件后的分号不能丢失
do {
    语句;
} while (循环条件);
  • for循环
    • for循环的执行顺序:按下图所示序号执行
    • 这里写图片描述
for (表达式1;表达式2;表达式3) {
    语句;
}
  • for循环注意事项
    • 如果省略表达式1,则需要在循环体外侧定义变量i;
    • 如果省略表达式2,则该循环将永远执行下去;
    • 如果省略表达式3,则需要在循环体内写上i++;
    • 若三个表达式都省略,可以在循环体中写上替代语句(和while循环有点类似哈^_^)。
int i = 1;
for (;;) {
    // ...
    if (i == 10)
        break;
    i++;
}

4、 嵌套循环

  • 以下为2重while循环,外面的循环称为外重循环,里面的循环称为内重循环
  • 当然也可以是其他循环的嵌套,或者这几种循环的混合嵌套都是可以的。
while (循环条件) {
    ……
    while (循环条件) {
        ……
    }
    ……
}
  • 下面使用嵌套while循环输出4行4列的星号。
  • 1.编写以下代码:
public class NestedLoop {
    public static void main(String[] args) {
        int m=0,n=0;
        while(m<4) {
            //外重循环控制输出的行数
            n=0;
            while(n<4) {
                //内重循环控制每行输出的星号数量
                System.out.print("*");
                n++;
            }
            System.out.println();
            m++;
        }
    }
}
  • 2.结果如下图所示。
    这里写图片描述
  • 3.改变内容为:
public class NestedLoop {
    public static void main(String[] args) {
        int m=0,n=0;
        while(m<4) {
            //外重循环控制输出的行数
            n=0;
            while(n<=m) {
                //内重循环控制每行输出的星号数量
                System.out.print("*");
                n++;
            }
            System.out.println();
            m++;
        }
    }
}

5、break语句与continue语句

  • break语句:
    • break语句可以结束当前循环的执行;
    • 执行完break语句后,在循环体当中(这个是前提,位于break语句后面的语句就不会被执行;
    • 在多重循环汇总,break语句只向外跳一层
  • continue语句:
    • 与break语句不同的是,continue语句只能用在循环里
    • continue语句可以结束当前循环的执行,但是要继续下一次循环的执行。
  • 1.求1+3+5+7+9的和,代码如下,运行结果略。
public class ContinueDemo {
    public static void main(String[] args) {
        int sum=0;
        for(int i=1;i<=9;i++) {
            if (i%2==0) continue;
            sum+=i;
        }
        System.out.println("sum="+sum);
    }
}

6、调试

6.1、debug入门

6.2、debug-多断点调试

猜你喜欢

转载自blog.csdn.net/chaixingsi/article/details/81841699