关于java选择结构if和else详解

关于java选择结构if和else详解

在上篇文章中我们了解了java的基本流程控制之一用户交互,也讲述了scanner类的使用方式,本篇文章中我们来深入一下下一个java流程控制,ifelse,这个是非常关键的,也是我们以后的工作中最常见最常用的。

一、顺序结构

在介绍if和else之前,我们先说明一下java的顺序结构,这个也是非常重要的。

  • java的基本结构就是顺序结构。
  • 顺序就是从上至下去运行,除非是有特殊指明,否则就是按照从上至下 的顺序执行。
  • 顺序结构是最简单的算法结构。
  • 语句和语句之间,框与框之间,都遵循从上至下的方式执行。
public class Demo
{
    public static void main(String[] args)
    {
            System.out.println("第一个");
            System.out.println("第二个");
            System.out.println("第三个");
            System.out.println("第四个");
    }

}

我们用最简单的输出来看一下结果。

第一个
第二个
第三个
第四个

所以我们可以看到,代码运行是从上到下的顺序。

二、if(选择结构)

首先我们来介绍一下if的几种结构

  • if单选择结构
  • if双选择结构
  • if多选择结构
  • if嵌套式结构
  • swith(这个我们在以后的文章中详细说明)

1、单选择结构

  • 单选择结构:就是只有一个if判断,if后的小括号内,是布尔表达式,判断为真还是为假,只有true和false两种结果,如果判断内容为真,则执行大括号里面的代码,如果为假,则跳过大括号里面的代码,向下执行。

  • 单选择结构使用方法:

if(布尔表达式)
{
	//如果布尔值是true,在此处写需要执行的语句
}
  • 单选择结构流程图:

关于java选择结构if和else详解_第1张图片

  • 单选择结构实例说明

我们正好可以结合上一篇文章中的Scanner知识,直接实战,用来加深对Scanner的印象。

关于java的用户交互Scanner

import java.util.Scanner;

public class Demo
{
    public static void main(String[] args)
    {
        Scanner scanner = new Scanner(System.in);
        
        System.out.println("请输入内容:");
        
        String str = scanner.next();//等待用户输入
        
        //equals 判断字符串是否相等
        if(str.equals(Hello))
        {
            System.out.println("输入的内容正确:"+str);
        }
        
        System.out.println("END");
        
        scanner.close();
    }

}
  • 在这里正好拓展一下,equals,是用于判断字符串是否相等,我们之前学习过这种方式(str==“Hello”),但是尽量不要用==去判断字符串是否相等,要去用equals,养成习惯以后就熟记于心了。

我们运行一下上面的代码,就可以看到以下输出结果(先看一下结果为真时候的输出)

请输入内容:
Hello
输入的内容正确:Hello
END

我们这里就可以看到,是按照顺序结构进行的,先执行了上面的判断,然后判断值是true,所以向下执行,再输出END。

我们再来看一下如果输入的内容和判断中的内容不一致,是什么结果(输入一个小写的hello)。

请输入内容:
hello
END

我们可以发现,输入的内容和判断中的内容不一致,大小写也是有区分的,结果为false,所以没有执行大括号中的代码,直接跳过向下执行了。

2、双选择结构

  • 双选择结构:通俗一点来说,比单选择结构多一层else,如果判断为真,执行if中的内容,如果为假,执行else中的内容。
  • 双选择结构使用方法:
if(布尔表达式)
{
	//如果布尔值是true,在此处写需要执行的语句
}
else  //注意,else后边没有括号
{
    //如果布尔值是false,在此处写需要执行的语句
}
  • 双选择结构流程图:

关于java选择结构if和else详解_第2张图片

  • 双选择结构实例说明

我们还是用Scanner交互,让用户输入自己的考试成绩,来判断是否及格。

import java.util.Scanner;

public class Demo
{
    public static void main(String[] args)
    {
        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();
    }
}

我们运行一下代码,先输入及格的成绩,假设输入的成绩是80,来看一下运行的结果。

请输入您的成绩:
80
及格
    
进程结束.......

我们看可以看到,80>60,所以判断的结果为真,执行了输出及格的结果,如果我们输入的成绩是55,就可以看到,结果为假,执行的是不及格的结果。

请输入您的成绩:
55
不及格
    
进程结束.......

3、多选择结构

  • 多选择结构:我们在用if和else做判断的时候,可能会不只有一个判断,可能会有多个判断,所以要用多选择结构来判断。
  • 多选择结构使用方法:
if(布尔表达式1)
{
	//如果布尔值是true,在此处写需要执行的语句
}
else if(布尔表达式2)
{
    //如果布尔值是true,在此处写需要执行的语句
}
else if(布尔表达式3)
{
    //如果布尔值是true,在此处写需要执行的语句
}
else  //注意,else后边没有括号
{
    //如果布尔值是false,在此处写需要执行的语句
}

else if 就是多种判断,没有数量限制,可以写很多的判断条件,如果条件满足其中一个判断,就可以直接执行那个条件需要执行的代码。

  • 多选择结构流程图:

关于java选择结构if和else详解_第3张图片

  • 多选择结构实例说明:

我们还是用Scanner来输入自己的成绩,但是这回需要判断成绩的等级,所以要用到多个判断,正好也可以用到我们之前文章中说到过的运算符。

关于java的运算符

import java.util.Scanner;

public class Demo
{
    public static void main(String[] args)
    {
        Scanner scanner = new Scanner(System.in);
        
        System.out.println("请输入您的成绩:");
        
        int score = scanner.nextInt();
        
        if (score>=60 && score<70)
        {
            System.out.println("及格");
        }
        else if (score>=70&&score<80)
        {
            System.out.println("中等");
        } else if (score>=80 && score<90)
        {
            System.out.println("优秀");
        } else if (score>=90 && score<100)
        {
            System.out.println("非常优秀");
        }
        else if (score==100)
        {
            System.out.println("恭喜满分!");
        } else if (score<60)
        {
            System.out.println("不及格");
        } else
        {
            System.out.println("无效的成绩");
        }
        
        scanner.close();
    }
}

我们执行一下,如果我们输入的成绩是80,因为80在score>=80 && score<90这个判断里,所以返回的结果是

请输入你的成绩:
80
优秀

进程结束......

这里我们要 详细介绍一下else if

  • 所有的if语句,都要至少有一个else,并且else要在所有的else if 之后。
  • if语句可以有若干个else if ,并且所有的else if 都要在else 之前。
  • 一旦其中一个满足了条件,判断的结果为true,其他的else if 和else 都会跳过执行。
  • 在以后的工作中,写判断的时候,一定要多思考,多去想有哪些情况,做到判断精准严谨!!

4、嵌套式结构

  • 嵌套式结构:就是if套娃,if判断里面可以再写一个if,进行嵌套使用。
  • 嵌套式结构使用说明:
if(布尔表达式1)
{
	//如果布尔值是true,在此处写需要执行的语句
    if(布尔表达式2)
	{
	//如果布尔值是true,在此处写需要执行的语句
	}
}
  • 使用嵌套的 if…else 语句是合法的。也就是说你可以在另一个 if 或者 else if 语句中使用 if 或者 else if 语句。你可以像 if 语句一样嵌套 else if…else。

如果我们需要找出一个数,这个数在1-100之间属于哪个范围。

  • 嵌套式结构实例说明:
import java.util.Scanner;

public class Demo
{
    public static void main(String[] args) 
    {

        Scanner scanner =new Scanner(System.in);

        System.out.println("请输入想要查找的数字:");

        int num=scanner.nextInt();

        if (num>=1 && num<=100) //首先要进行最外层的判断
        {
            if (num>=1 && num<=50)
            {
                System.out.println("此数字在1-50之间");
            }
            else if (num>=50 && num<=100)
            {
                System.out.println("此数字在50-100之间");
            }
        }
        else
        {
            System.out.println("输入的数字无效!");
        }

        scanner.close();
    }
}

假如我们输入的数字是88,执行一下代码,可以得到以下结果。

请输入想要查找的数字:
88
此数字在50-100之间

假如我们输入的数字是188,执行一下代码,可以得到以下结果。

请输入想要查找的数字:
188
输入的数字无效!

以上就是基础选择结构的四种方式,按照步骤去理解,结合现实生活中的一些判断逻辑,多去练习,加深印象。

你可能感兴趣的:(java,开发语言,算法)