java基础之选择结构精选

Posted 磊哥的Java历险记

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java基础之选择结构精选相关的知识,希望对你有一定的参考价值。

一.前言

上一篇我们讲了引用类型,花费了大量时间和精力,反复的敲代码作为练习,相信兄弟们也多少会有一些收获,那今天咱们接着往下讲,java基础之选择结构! 

java基础之选择结构精选_if

在Java中我们有大量的控制语句,除了一般的顺序控制语句,条件控制语句,是我们最常用的一种语句,下面我们就来介绍语句的应用。

       条件语句又称为分支语句,它通过对给定的条件进行判断,从而决定执行两个或多个分支中的哪一支。因此,在编写选择语句之前,应该首先明确判断条件是什么,并确定当判断结果为“真”或“假”时应分别执行什么样的操作(算法)。

       条件语句是一种根据条件执行不同代码的语句,如果条件满足则执行一段代码,否则执行其他代码。可将条件语句认为是有点像起因和结果。一种更好的类比方式。 

举个例子:父母可能会说的话,如下面的内容:“如果你把房间收拾干净了,你会得到冰淇凌。否则,你会有一个完整的同年(七匹狼~)”。

        第一个起因是收拾干净房间,结果是可以得到冰淇凌。第二个起因是不干净的房间,结果是揍你一顿(获得完整的同年)。

        在脚本上,可能需要创建类似的语句。可能如下面的内容一样:“如果变量mymoney的值大于10000,那么发送警告告知我的金融状况没问题。否则,发出警告,告知我需要更多钱!”

二、知识点介绍

1、概述

2、if语句

3、switch语句

三、知识点详解

1、概述

        选择结构也被称为分支结构。选择结构有特定的语法规则,代码要执行具体的逻辑运算进行判断,逻辑运算的结果有两个,所以产生选择,按照不同的选择执行不同的代码。

Java语言提供了两种选择结构语句

(1)if语句

(2)switch语句

2、if语句

2.1、if语句简介

      在现实业务中,许多场景需要我们做出条件判断,而每一种条件对应一则业务逻辑。比如,如果考试超过60分,不需要补考,低于60分需要补考。再比如如果是管理员,则可以管理论坛,而普通游客却不可以等等。

对应这样需要选择的业务场景,我们可以使用if选择结构。 

2.2、if语句格式

2.2.1、单条件判断(格式1)

满足if条件即执行,不满足不执行。如年龄大于18岁可以游戏防沉迷解除

if语句的语法格式:

if (条件语句)

代码块

执行流程:

    首先判断关系表达式看其结果是true还是false,如果是true就执行语句体,如果是false就不执行语句体。

流程图:

java基础之选择结构精选_switch_02

代码示例:

/*
磊哥的java历险记-@51博客
选择结构if语句的第一种格式,有可能一句话都不打印

格式:
if(条件语句) if括号内的条件语句是布尔类型,只有两种结果:true ,flase
code;
...


执行步骤:
首先判断条件语句是否成立
true:执行if中的代码
false:不执行if中的代码
*/

代码演示:

package com.Test;

//1.导包
import java.util.Scanner;
public class Main
private final static String name = "磊哥的java历险记-@51博客";
public static void main(String[] args)

Scanner sc = new Scanner(System.in);
System.out.println("请输入您的年龄: ");//磊哥的java历险记-@51博客
int age = sc.nextInt();
if(age >= 18)//
System.out.println("年龄大于等于18岁,游戏解除防沉迷");

if(age < 18)
System.out.println("年龄小于18岁,青少年每天游戏时间不得超过两个小时");


System.out.println("============="+name+"=============");

java基础之选择结构精选_选择结构_03

2.2.2、互斥条件判断(格式2)

       满足条件执行if语句体,不满足执行else语句体。如年龄大于18岁可以解除游戏防沉迷,小于18岁每天游戏时间不得超过两小时。

if语句第二种格式:

if(关系表达式) 

语句体1;

else

语句体2;

执行流程:

         首先判断关系表达式看其结果是true还是false,如果是true就执行语句体1,如果是false就执行语句体2

流程图:  

java基础之选择结构精选_选择结构_04

代码演示:

package com.Test;

/*
磊哥的java历险记-@51博客
选择结构if语句的第二种格式:总会打印一句话
格式:
if(条件语句)
执行语句1;
...
else
执行语句2;
...

执行流程:
首先判断条件语句是否成立
true:执行if中的执行语句1
false:执行else中的执行语句2
*/
import java.util.Scanner;
public class Main
private final static String name = "磊哥的java历险记-@51博客";
public static void main(String[] args)
Scanner sc = new Scanner(System.in);
System.out.println("请输入您的年龄: ");
int age = sc.nextInt();
//if 和 else只走一个
//条件成立,就不走else了
if(age >= 18)
System.out.println("年龄大于等于18岁,游戏解除防沉迷");
//条件不成立,走else
else
System.out.println("年龄小于18岁,青少年每天游戏时间不得超过两个小时");

System.out.println("============="+name+"=============");

java基础之选择结构精选_if_05

2.2.3、多条件判断(格式3)

在多个条件中选择满足条件的if语句体执行。

例如,对一个学生的考试成绩进行等级的划分;如果分数大于等于80分,小于等于100分等级为优;如果分数大于等于70分,小于80分级为良;如果分数大于等于60分,小于70分等级为及格;60以下为不及格。

if语句第三种格式:

if (判断条件1) 
执行语句1
else if (判断条件2)
执行语句2

======================

else if (判断条件n)
执行语句n
else
执行语句n+1

执行流程:

        首先判断关系表达式1看其结果是true还是false,如果是true就执行语句体1,如果是false就继续判断关系表达式2看其结果是true还是false,如果是true就执行语句体2,如果是false就继续判断关系表达式…看其结果是true还是false

…,如果没有任何关系表达式为true,就执行语句体n+1。

流程图:

java基础之选择结构精选_java_06

代码演示: 

package com.Test;


import java.util.Scanner;

/*
磊哥的java历险记-@51博客
选择结构if语句的第三种格式:终究会打印一个结果

格式:
if(条件1)
条件1成立执行
else if(条件2)
条件1不成立,条件2成立执行

.....
else if(条件n)
条件1,条件2...都不成立,条件n成立执行
else
所有条件都不满足,执行


需求:根据成绩判断成绩等级
90-100分:优
80-90分:良
70-80分:中
60-70分:及格
0-60分:不及格
其它成绩:非法成绩
变量的作用域:在自己所在的内有效
*/
public class Main
private final static String name = "磊哥的java历险记-@51博客";
public static void main(String[] args)
//创建接受键入对象
Scanner sc = new Scanner(System.in);
System.out.println("请输入您的成绩: ");
//调用键入方法
double score = sc.nextInt();
if(score >=90 && score <=100)
System.out.println("成绩是"+score+",等级为优!");
else if(score >=80 && score <90)
System.out.println("成绩是"+score+",等级为良!");
else if(score >=70 && score <80)
System.out.println("成绩是"+score+",等级为中!");
else if(score >=60 && score <70)
System.out.println("成绩是"+score+",等级为及格!");

else if(score >=0 && score <60)
String falg = "这段话只有在这里才能用,其他代码块中不能调用";
System.out.println(falg);
System.out.println("成绩是"+score+",等级为不及格!");
else
//System.out.println(falg);//错误: 找不到符号,falg在其他代码块中
System.out.println("成绩是"+score+",非法成绩!");


System.out.println("============="+name+"=============");

java基础之选择结构精选_代码_07

小练习:比大小

代码演示:

package com.Test;
import java.util.Scanner;
public class Main
private final static String name = "磊哥的java历险记-@51博客";
public static void main(String[] args)
//创建对象
Scanner sc = new Scanner(System.in);
//接收数据
System.out.println("请输入第一个数据:");
int a = sc.nextInt();
System.out.println("请输入第二个数据:");
int b = sc.nextInt();
//采用if语句格式2实现
/*
if(a>b)
System.out.println("较大的值是:"+a);
else
System.out.println("较大的值是:"+b);

*/
//拿到较大的值之后,我未必想直接输出,所以我们定义变量接收这个较大的值
int max;
if(a>b)
max = a;
else
max = b;

//可能做其他的操作
//max += 100;
System.out.println("较大的值是:"+max);
System.out.println("============="+name+"=============");


java基础之选择结构精选_代码_08

2.2.4、多层条件判断

在复杂的业务逻辑中,可以使用多层的条件判断代码是否执行。

       如:60分以下的同学不及格重考,60分以上的同学不需要重考,这个区间又可以分为:优秀、良好、及格三个等级。

if(第一层条件)
if(第二层条件)
真正运行逻辑

代码演示:

package com.Test;
/*
多层if语句:if语句嵌套
格式:
if(条件语句)
if(条件语句)
code;
...


需求:
成绩>= 60
打印成绩合格,可以升级
90-100分:优
80-90分:良
70-80分:中
60-70分:及格
成<60
打印成绩不及格,需要补考
*/

import java.util.Scanner;
public class Main
private final static String name = "磊哥的java历险记-@51博客";
public static void main(String[] args)
Scanner sc = new Scanner(System.in);
System.out.println("请输入您的成绩: ");
int score = sc.nextInt();

if(score >= 60 && score <=100)
System.out.println("成绩合格,可以升级");
if(score >=90 && score <=100)
System.out.println("成绩是"+score+",等级为优!");
else if(score >=80 && score <90)
System.out.println("成绩是"+score+",等级为良!");
else if(score >=70 && score <80)
System.out.println("成绩是"+score+",等级为中!");
else
System.out.println("成绩是"+score+",等级为及格!");



else if(score >=0 && score < 60)
System.out.println("成绩不及格,需要补考");
else
System.out.println("非法成绩");

System.out.println("程序结束");
System.out.println("============="+name+"=============");

java基础之选择结构精选_代码_09

3、switch语句

3.1、选择结构_switch概念

        在现实业务中,许多场景需要我们从多个固定的值中选出一个,执行该数值对应的操作。比如,在一周七天,当输入1-7会打印不同的星期。

对应这样的业务场景,我们可以使用switch选择结构。

3.2、格式switch格式

switch语句的格式:

switch (表达式)
case 目标值1:执行语句1;break;
case 目标值2:执行语句2;break;
......
case 目标值n:执行语句n;break;
default:执行语句n+1;break;

执行流程:

        首先计算出表达式的值,其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束。最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。

流程图:

java基础之选择结构精选_选择结构_10

       在上面的格式中,switch语句将表达式的值与每个case中的目标值进行匹配,如果找到了匹配的值,会执行对应case后的语句,如果没找到任何匹配的值,就会执行default后的语句。break的作用是跳出switch语句。

代码演示:

/*
需求:键盘输入对应1-7,输出对应的中文日期
*/
import java.util.Scanner;
public class Main
private final static String name = "磊哥的java历险记-@51博客";
public static void main(String[] args)
Scanner sc = new Scanner(System.in);
System.out.println("请输入星期对应的数字:");
int week = sc.nextInt();//2
switch(week)
case 1:
System.out.println("星期一");
break;
case 2:
System.out.println("星期二");
break;
case 3:
System.out.println("星期三");
break;
case 4:
System.out.println("星期四");
break;
case 5:
System.out.println("星期五");
break;
case 6:
System.out.println("星期六");
break;
case 7:
System.out.println("星期日");
break;
default:
System.out.println("您输入的数字有误!");
break;

System.out.println("程序结束");
System.out.println("============="+name+"=============");

java基础之选择结构精选_选择结构_11

3.3、switch注意事项

(1)switch表示这是switch语

(2)表达式的取值只能是:byte,short,int,char,JDK5以后可以是枚举,JDK7以后可以是String

(3)如同if语句当中的else,default不是必须存在的,与if语句不同,switch语句只能完成具体值的选择,而不能指定取值区间,case后面跟的是要和表达式进行比较的值

(4)语句体部分可以是一条或多条语

(5)break表示中断,结束的意思,可以结束switch语句,default语句表示所有情况都不匹配的时候,就执行该处的内容,和if语句的else相似

(6)case条件只判断一次,在判断完一次case条件后,所有的case判断语句将不再起作用,而剩余语句征程执行。这是switch语句的穿透。(了解)

代码演示:

/*  
磊哥的java历险记-@51博客

需求:键盘输入对应1-7
1-5:输出工作日
6-7:输出休息日
*/
import java.util.Scanner;
public class Demo02Switch
public static void main(String[] args)
Scanner sc = new Scanner(System.in);
System.out.println("请输入星期对应的数字:");
int week = sc.nextInt();//2

switch(week)
case 1:
case 2:
case 3:
case 4:
case 5:
System.out.println("工作日");
break;
case 6:
case 7:
System.out.println("休息日");
break;
default:
System.out.println("您输入的数字有误!");
break;


System.out.println("程序结束");

java基础之选择结构精选_switch_12

结语:

选择结构是我们后面会经常用到的语句,所以初学者兄弟,在看完后可以跟着我的演示代码,自己动手打一打代码,会对选择结构的印象更加深刻。

我的文章不是最优秀的,但一定是相对简单的,一看能懂,一学就会的类型,所以希望大家也多多支持,多多关注,本系列持续更新!

感谢大家的持续关注!

java基础之选择结构精选_if_13

以上是关于java基础之选择结构精选的主要内容,如果未能解决你的问题,请参考以下文章

java之基本类型包装类精选

java之String类精选

java之递归算法精选

java历险记之引用类型

java之Math类精选

java之StringBuilder和stringbuffer精选