Java流程控制2

2021/4/8 1:09:01

本文主要是介绍Java流程控制2,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Java 流程控制

顺序结构

  • Java 的基本结构就是顺序结构,除非特别指明,否则就安扎顺序结构一句一句执行。
  • 顺序结构是最简单的算法结构
  • 语句与语句之间,框与框之间是按照从上到下的顺序进行的,它是由若干依次执行的处理步骤组成的,它是任何一个算法都离不开的一种基本算法结构

选择结构

  • if 单选择结构
  • if 双选择结构
  • if 多选择结构
  • 嵌套的 if 结构
  • switch多选择结构

if 单选择结构

  • 我们很多时候需要去判断一个东西是否可行,然后我们去执行,这样一个过程在程序中用 if 语句来表示

  • 语法:

    if(布尔表达式){
        //如果布尔表达式为 true 将执行的语句
    }
    

    代码如:

import java.util.Scanner;

public class IfDemo01 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        String s = scanner.nextLine();

        //euqals:判断字符串是否相等
        if (s.equals("Hello")){
            System.out.println("Hello");
        }
        System.out.println("end");
        scanner.close();
    }
}

if 双选择结构

  • 如果我们需要两个判断,需要双选择结构,可用 if - else
  • 语法
if(布尔表达式){
    //如果布尔表达式的值为true
}else{
    //如果布尔表达式的值为false
}

代码如:

import java.util.Scanner;

public class IfDemo02 {
    public static void main(String[] args) {
        //考试分数大于60就是及格,小于60就是不及格
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入成绩:");
        int score = scanner.nextInt();
        if (score>=60){
            System.out.println("及格");
        } else {
            System.out.println("不及格");
        }
        scanner.close();
    }

if 多选择结构

  • 真是情况下还可能存在更多的选择情况,存在区间多级判断。此时我们需要多选择结构

  • 语法:

if(布尔表达式 1 ){
    //如果布尔表达式 1 的值为true执行代码
}else if(布尔表达式 2 ){
    //如果布尔表达式 2 的值为true执行代码
}else if(布尔表达式 3 ){
    //如果布尔表达式 3 的值为true执行代码
}else {
    //如果以上布尔表达式都不为true执行代码
}

  • 代码如
import java.util.Scanner;

public class IfDemo03 {
            public static void main(String[] args) {
                //考试分数大于60就是及格,小于60就是不及格
                Scanner scanner = new Scanner(System.in);
                /*
                 if 至多只有一个 else 语句,else 语句在所有的 else if 语句之后。
                 if 语句可以有若干个 else if 语句,它必须在 else 语句之前。
                 一旦一个 else if 语句检测为 true 其他 else if 以及 else 都将被跳过执行
                 */
                System.out.println("请输入成绩:");
                int score = scanner.nextInt();
                if (score>=60) {
                    System.out.println("及格");
//嵌套
                    if (score == 100) {
                        System.out.println("恭喜满分");
                    } else if (score >= 90 && score < 100) {
                        System.out.println("A级");
                    } else if (score >= 80 && score < 90) {
                        System.out.println("B级");
                    } else if (score >= 70 && score < 80) {
                        System.out.println("C级");
                    } else if (score >= 60 && score < 70) {
                        System.out.println("D级");
                    }
                }
                else {
                    System.out.println("不及格");
                }
                scanner.close();
            }
}

嵌套的 if 结构

  • 使用嵌套的 if...else 语法是合法的。也就是说你可以在另一个 if 或者 else if 语句中使用 if 或者 else if 语句。你可以像 if 语句一样其嵌套 else if...else。
  • 语法:
if(布尔表达式 1 ){
    ////如果布尔表达式 1 的值为 true 执行代码
    if(布尔表达式 2 ){
        ////如果布尔表达式 2 的值为 true 执行代码
    }
}

switch 多选择结构

  • 多选择结构还有一个实现方式就是switch case 语句。
  • 看源码
  • switch case 语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。
  • 语法:
switch(experssion){
    case value:
        //语句
        break;//可选
    case value:
        //语句
        break;//可选
    //你可以有任意数量的case语句
    default ://可选
        //语句
}
  • switch 语句中的变量类型可以是:

    • byte、short、int 或者 char
    • 从 Java SE 7 开始 switch 支持字符串类型 String 类型了
    • 同时 case 标签必须为字符串常量或字面量。
  • 代码如

    package struct;
    //汉字
    public class SwitchDemo02 {
        public static void main(String[] args) {
            //JDK 7 表达式结果可字符串
            //字符的本质还是数字
    
            //反编译   java---class(字节码文件)---反编译(IDEA)
            String name = "seveN1foR";
    
            switch (name){
                case "FortOfouR":
                    System.out.println("FortOfouR");
                    break;
                case "seveN1foR":
                    System.out.println("seveN1foR");
                    break;
            }
        }
    }
    
  • 反编译代码

//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//
package struct;

public class SwitchDemo02 {
    public SwitchDemo02() {
    }

    public static void main(String[] args) {
        String name = "seveN1foR";
        byte var3 = -1;
        switch(name.hashCode()) {
        case -1452256187:
            if (name.equals("seveN1foR")) {
                var3 = 1;
            }
            break;
        case -296048694:
            if (name.equals("FortOfouR")) {
                var3 = 0;
            }
        }
        switch(var3) {
        case 0:
            System.out.println("FortOfouR");
            break;
        case 1:
            System.out.println("seveN1foR");
        }
    }
}

循环结构

  • while 循环

  • do...while 循环

  • for 循环

  • 在 Java5 中引入了一种主要用于数组的增强型 for 循环。

while 循环

  • while 是最基本的循环,它的结构为:
while(布尔表达式){
    //循环内容
}
  • 只要布尔表达式为 true,循环就会一直执行下去。
  • 我们大多数情况是会让循环停止下来的,我们需要一个表达式失效的方式来结束循环.
  • 少部分情况需要循环一直进行,比如服务器的请求响应监听等。
  • 循环条件一直为 true 就会造成无限循环[死循环],我们正常的编程中应尽量避免死循环。会影响程序性能或者造成程序卡死崩溃!

代码如:

package struct;

public class WhileDemo03 {
    public static void main(String[] args) {
        int i = 0;
        int sum = 0;

        while (i<100){
            i++;
            sum+=i;
        }
        System.out.println(sum);
    }
}

do...while

  • 对于 while 语句而言,如果不满足条件,则不能进入循环。又是我们需要即使不满足条件也至少执行一次。
  • do...while 循环和 while 循环相似,不同的是,do...while 循环至少会执行一次。
do{
    //代码语句
}while(布尔表达式)
  • While 和 do-While 的区别:

    • while 先执行判断后执行。do-while循环先执行后判断!
    • Do...while 总是保证循环会被至少执行一次!这是他们的主要区别。
  • 代码如:

package struct;

public class DoWhileDemo01 {
    public static void main(String[] args) {
        int i = 0;
        int sum = 0;

        do {
            sum+=i;
            i++;
        }while (i<=100);
        System.out.println(sum);
    }
}


这篇关于Java流程控制2的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程