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);
    }
}
本文来自博客园,作者:seveN1foR,转载请注明原文链接:https://www.cnblogs.com/seveN1foR/p/14630019.html
 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号