ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Java流程控制2

2021-04-07 23:02:34  阅读:108  来源: 互联网

标签:语句 控制 Java 流程 System else println 表达式 out


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,流程,System,else,println,表达式,out
来源: https://www.cnblogs.com/seveN1foR/p/14630019.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有