Tips:样式蚂蚁森林浇水get

java基础——day03-1 流程控制语句

流程控制

概述

  在一个程序的执行过程中,每条语句的执行顺序会直接影响结果。而且在很多时候我们都要通过控制语句的执行顺序,来实现我们要完成的功能。

顺序结构

  概念:执行顺序根据编写的顺序,从上往下执行。

package day03;

public class day03_1 {
    public static void main(String[] args) {
        //顺序结构
        System.out.println("这是要执行的第一条语句");
        System.out.println("这是要执行的第二条语句");
        System.out.println("这是要执行的第三条语句");
    }
}
顺序结构

判语语句if

  判断语句--if

  第一种格式:if(表达式关系){语句体}

package day03;

public class day03_2 {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        int c = 10;
        if(a == b){
            //因为a != b 不满足条件 所以该条语句不会再执行
            System.out.println("a = b");
        }
        if(a == c){
            //因为a =c 满足条件,所以控制台会输出a =c
            System.out.println("a = c");
        }
        System.out.println("结束");
    }
}
if 格式1

  执行流程:

  

  判断语句--if...else

  第二种格式:if(关系表达式){语句体1}else{语句体2}

package day03;

public class day03_2 {
    public static void main(String[] args) {
        int a = 10;
        //通过对a进行取余 判断a是奇数还是偶数
        if(a %2 ==0){
            //因为 a / 2余数为0 所以 a 是偶数
            System.out.println("a 是偶数");
        }else {
            //上面条件成立 该条语句不再执行
            System.out.println("a 是奇数");
        }
        System.out.println("结束");
    }
}
if 格式2

  执行流程:

 

 

 

  判断语句--if...else if ...else

  第二种格式:if(关系表达式1){语句体1} else if(关系表达式2){语句体2} else{语句体3}

package day03;

public class day03_3 {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        int c = 30;
        if(a >b){
            System.out.println("a > b");
        }else if(a > c){
            System.out.println("a > c");
        }else{
            System.out.println("a < b and a < c");
        }
    }
}
if 格式3

  执行流程:

 

 

   if语句小练习:

package day03;

import java.util.Scanner;

public class day03_4 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入查询的成绩:");
        int CJ = sc.nextInt();
        System.out.println(Score(CJ));
    }
    public static String Score(int score){
        if(score > 79){
            if(score >= 80 && score <= 89){
                return "好";
            }else {
                return "优秀";
            }
        }else if(score < 70){
            if(score >= 60 && score <= 69){
                return "及格";
            }else {
                return "不及格";
            }
        }else {
            return "良";
        }
    }
}
成绩判断
package day03;
//三元运算符与if语句互换使用
public class day03_5 {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        //定义变量 存储a,b的较大值
        int c;
        //if语句实现
        if(a > b){
            c = a;
        }else {
            c = b;
        }
        System.out.println(c);

        //三元运算符
        c = a>b?a:b;
        System.out.println(c);
        
        //其返回值与if语句一致 都20
    }
}
if语句 与 三元运算符

选择语句--switch

  格式:

 

  执行流程:

 

  小练习:

package day03;

import java.util.Scanner;

public class day03_6 {
    //定义变量,判断是周几
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入1-7进行判断:");
        int weekday = sc.nextInt();
        if(weekday >7 || weekday <1){
            System.out.println("您的输入有误!");
        }else {
            switch (weekday){
                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;
                default:
                    System.out.println("星期天");
            }
        }


    }
}
判断星期几

  注意:

  在switch语句中,如果case的后面不写break,将不再判断下一个case的值,而是直接向后运行,直到遇到break或者整体的switch结束

package day03.day0;

public class _7 {
    public static void main(String[] args) {
        int weekday = 1;
        switch (weekday){
            case 1:
                System.out.println("星期一");
                //符合条件 且无break 代码会继续执行
            case 2:
                System.out.println("星期二");
                //不符合条件 且无break 代码会继续执行
            case 3:
                System.out.println("星期三");
                break;
                //存在break 代码至此结束
            case 4:
                System.out.println("星期四");
                break;
            case 5:
                System.out.println("星期五");
                break;
            case 6:
                System.out.println("星期六");
                break;
            default:
                System.out.println("星期天");
        }
    }
}
无break

  由于case存在穿透性,因此在编写switc语句时,必须在每个case事件中加break;

 循环语句

  定义:循环语句在满足循环条件的情况下,反复执行某段代码,这段重复执行的代码被称为循环体语句,当反复执行这个循环体时,需要在合适的时候,把循环判断的条件改为false,从而终止循环,否则会形成死循环

循环语句--for

  格式:

   for(初始化表达式; 布尔表达式; 步进表达式){
    循环体
                        }

  例如:

package day03;

public class day03_8 {
    //for循环语句
    public static void main(String[] args) {
        //   初始化表达式 ;布尔表达式;步进表达式
        for (int i = 0; i < 5; i++) {
            //循环体
            System.out.println("hello word "+i);
        }
    }
}
for循环

  执行流程:

 

  循环练习:

package day03;

public class day03_9 {
    //计算1-100间的偶数和
    public static void main(String[] args) {
        //定义接收累加和
        int sum = 0;
        //获取1-100间的数字
        for (int i = 1; i <= 100; i++) {
            //判断是否为偶数
            if(i % 2 ==0){
                //计算偶数累加和
                sum += i;
            }
        }
        //打印累加结果
        System.out.println("sum= "+sum);
    }
}
求1-100间的累加和
package day03;
//打印三角形
public class day03_10 {
    public static void main(String[] args) {
        for(int i=1;i<=5;i++){
            for(int j=5; i<=j; 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();
        }
    }
}
打印三角形
package day03;

public class day03_11 {
    public static void main(String[] args) {
        for (int i = 1; i <= 9; i++) {
            for (int j = 1; j <= i; j++) {
                System.out.print(j+"*"+i +"="+i*j+" ");
            }
            System.out.println();
        }
    }
}
九九乘法表

循环语句--while

  说明:while语句在执行的时候,会先判断条件,若条件成立则执行循环体内的语句

  格式:

  初始化表达式
  while(布尔表达式){
  循环体
  步进表达式
            
}

  举例:

package day03;

public class day03_12 {
    //利用while语句打印10次hello world
    public static void main(String[] args) {
        int i = 1;
        while (i <=5){
            System.out.println("hello world!" + i);
            i+=1;
        }
    }
}
利用while打印5次内容

  执行流程:

  

 

  小练习:

package day03;

public class day03_13 {
    //利用while计算1-100之间的和
    public static void main(String[] args) {
        int i = 1;
        int sum = 0;
        while (i <= 100){
            sum+=i;
            i+=1;
        }
        System.out.println(sum);
    }
}
利用while实现1-100的累加

循环语句--do...while

  说明:do...while语句,在运行时,会先执行一次循环体内的语句,然后再判断条件

  格式:

   初始化表达式
  do{
    循环体
    步进表达式
    }while(布尔表达式);

  例如:

package day03;

public class day03_14 {
    //do...while语句
    public static void main(String[] args) {
        //定义变量
        int i =1;
        //do 先执行循环体内语句 再进行条件判断
        do{
            System.out.println("hello world" + i);
            i+=1;
        }while (i<=5);
    }
}
do...while
package day03;

public class day03_15 {
    public static void main(String[] args) {
        do{
            System.out.println("你看我会不会执行");
        }while (false);
        //循环体内的语句一定会先执行一遍
    }
}
检验

  执行流程:

 

 

 

 

 

 

   for与while的区别:

  1.控制条件语句所控制的那个变量,在for循环结束后,就不能访问到,而while循环结束后还可以继续使用,所以如果想继续使用,就用while,否则用for。原因是for循环结束,该变量就从内存中消失,提高内存使用效率。(未能证实...

package day03;

public class day03_16 {
    public static void main(String[] args) {
        int i = 0;
        for (i=0; i < 3; i++) {
            System.out.println("for "+i);
        }
        System.out.println(i);

        int j = 0;
        while (j<3){
            System.out.println("while "+j);
            j+=1;
        }
        System.out.println(j);
    }
}
没证实明白

  2.已知循环次数推荐用for未知循环次数推荐用while

跳出语句--break

  使用场景:终止switch或者循环

  1.在选择结构switch语句中

package day03;

public class day03_17 {
    //break在switch语句中
    public static void main(String[] args) {
        int i =2;
        switch (i){
            case 1:
                System.out.println("程序运行到事件1啦");
                break;
            case 2:
                System.out.println("程序运行到事件2啦");
                break;
            case 3:
                System.out.println("事件运行到事件3啦");
                break;
            default:
                System.out.println("没有找到对应答案");
        }
    }
}
break终止switch事件

  2、在循环语句中

package day03;

public class day03_18 {
    public static void main(String[] args) {
        //break在for循环中的应用
        for (int i = 0; i < 5; i++) {
            if(i == 3){
                break;
            }
            System.out.println("i= "+i); //i = 2 因为当i=3的时候 通过break跳出循环
        }

        int num = 1;
        while (num<=5){
            num+=1;
            if(num == 3){
                break;
            }
            System.out.println("num = "+num); //num = 2 与上述同理 
        }
    }
}
break在for与while中

跳出语句--continue

  使用场景:结束本次循环,继续下一次循环

package day03;

public class day03_19 {
    public static void main(String[] args) {
        for (int i = 0; i < 5; i++) {
            if(i == 3){
                continue;
            }
            //循环会执行5次 但是当i=3时 会结束本轮循环 也就是i=3不会被打印输出
            System.out.println("i = "+i);
        }
    }
}
continue

拓展

  死循环:指的是循环条件永远为true,死循环是永不结束的循环,例如:while(true){}

  嵌套循环:指一个循环的循环体是另一个循环。比如for循环里还有一个for循环。

  格式:

  for(初始化表达式; 循环条件; 步进表达式) {
    for(初始化表达式; 循环条件; 步进表达式) {
      执行语句;
      }
    }

  执行流程:

  

  例如:

package day03;

import java.util.Scanner;

public class day03_20 {
    //打印5*5的矩形
    public static void main(String[] args) {
        for (int i = 0; i < 5; i++) {
            for (int j = 0; j < 5; j++) {
                System.out.print("* ");
            }
            System.out.println();
        }
    }
}
5*5的矩形

 

posted @ 2021-02-28 23:06  心岛未晴  阅读(75)  评论(0)    收藏  举报