选择结构

if

if单选择结构

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

  • 语法

    if(布尔表达式){
    //布尔表达式为真则执行的语句
    }
    
package com.ljh.structure;

import java.util.Scanner;

/**
 * if单选择结构
 */
public class IfDemo1 {
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        System.out.println("请输入:");
        String s = scanner.nextLine();
        if (s.equals("hello,world")){//equals()比较两个字符串是否相等
            System.out.println("你好,世界");
        }
        scanner.close();
    }
}

if双选择结构

语法

if(布尔表达式){
//如果布尔表达式的值为真则执行
}else{
//如果布尔表达式的值为假则执行
}
package com.ljh.structure;

import java.util.Scanner;

/**
 * if双选择结构
 */
public class IfDemo2 {
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        System.out.println("请输入:");
        String s = scanner.nextLine();
        if (s.equals("hello,world")){//equals()比较两个字符串是否相等
            System.out.println("你好,世界");
        }else{
            System.out.println("你好,java");
        }
        scanner.close();
    }
}

if多选择结构

有时候我们的代码存在区间多级判断,在我们生活很多时候的选择也不仅仅只有两个,所以我们需要一个多选择结构来处理这类问题!

语法:

if(布尔表达式1){
    //布尔表达式1为真则执行
}else if(布尔表达式2){
    //布尔表达式2为真则执行
}else if(布尔表达式3){
    //布尔表达式3为真则执行
}else{
    //如果以上都不为真则执行
}
package com.ljh.structure;


import java.util.Scanner;

/**
 * 多选择结构
 */
public class IfDemo3 {
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        System.out.println("请输入成绩");
        int score = scanner.nextInt();
        if (score==100){
            System.out.println("极品");
        }else if(score<100&&score>=80){
            System.out.println("优");
        }else if(score<80&&score>=60){
            System.out.println("良");
        }else if(score<60&&score>=0){
            System.out.println("差");
        }else {
            System.out.println("输入不合法");
        }
        scanner.close();
    }
}

if嵌套

  • 使用if...else语句是合法的,也就是说你可以在另一个if或者else if语句中使用if或者else if语句 你可以像if语句一样嵌套 else if...else.

  • 语法:

    if(布尔表达式1){
        //布尔表达式1为真执行的代码
        if(布尔表达式2){
            //布尔表达式2为真执行的代码
        }
    }
    

switch

  • switch case语句判断一个变量与一系列中某个值是否相等,每个值成为一个分支
  • switch语句中的变量类型可以是:
    • byte、short、int或是char
    • 从javaSE 7开始 switch支持String字符串了
    • 同时case标签必须为字符串常量或字面量
package com.ljh.structure;

public class SwitchDemo1 {
    public static void main(String[] args) {
        char code='A';
        switch (code){
                //如果没有break会有case穿透问题,最后一个可以不写break,最好都带上
            case 'A':
                System.out.println("A");
                break;
            case 'B':
                System.out.println("B");
                break;
            case 'C':
                System.out.println("C");
                break;
                default:
                    System.out.println("啥也不是");
        }
    }
}

我们通过反编译可以看到 字符本质其实还是数字

// Decompiled by Jad v1.5.8g. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://www.kpdus.com/jad.html
// Decompiler options: packimports(3) 
// Source File Name:   SwitchDemo1.java

package com.ljh.structure;

import java.io.PrintStream;

public class SwitchDemo1
{

    public SwitchDemo1()
    {
    }

    public static void main(String args[])
    {
        char code = 'A';
        switch(code)
        {
        case 65: // 'A'
            System.out.println("A");
            break;

        case 66: // 'B'
            System.out.println("B");
            break;

        case 67: // 'C'
            System.out.println("C");
            break;

        default:
            System.out.println("\u5565\u4E5F\u4E0D\u662F");
            break;
        }
    }
}