在讲解分支语句前,我们先来了解一个概念——块(block),块(复合语句)指的是由一对大括号{}括起来的若干条简单的java语句。例如,public class Tset5{...}大括号里面包含的就是块了,块可以嵌套,例如
public class Test5{
public static void main{
}
}
Java中可以分为if语句和switch语句两种分支语句,下面我们逐一介绍。
if语句
if语句的执行结构是先根据条件判断再执行
例如一个简单的if语句:
if (布尔表达式){
执行语句1;
}else{
执行语句2;
}
可以这样简单理解,if就是如果的意思,else(否则),if(假设条件成立,即值为true)则执行语句1,否则执行语句2。
布尔表达式(Boolean expression)是一段代码声明,它最终只有true(真)和false(假)两个取值。最简单的布尔表达式是等式(equality),这种布尔表达式用来测试一个值是否与另一个值相同。
下面我们用一个程序来举例子
例如,我输入的是9
嗯,就是这样,学会了吗?,这里讲一下我们是如何实现输入数据的。
还记的前面,我们用过的System.out.println吗?("."符号是用来调用方法的),这个方法是用来打印输出到“标准输出流”(即控制台窗口),那我们该如何读取“标准输入流”System.in呢?
首先import java.util.Scanner;表示导入java.util包里的Scanner类。import也就是输入的意思。
需要注意的是:import 只能导入包所包含的类,而不能导入包。为了方便,我们基本不导入单独的类,而是导入包下所有的类,例如 import java.util.*;
补充:Java中的一个包就是一个类库单元,包内包含有一组类,它们在单一的名称空间之下被组织在了一起。这个名称空间就是包名。
要想通过控制台进行输入,需要构造一个Scanner对象。这就是我们为什么先要导入Scanner类。然后,让它和System.in关联。就是下面这段代码:
Scanner input = new Scanner(System.in);
这段代码的意思是用scanner这个类创建一个名叫input的对象,System.in可以看做一个参数,这个参数是控制台输入内容。
对象(input)有许多的方法如:
input.next();指的是控制台输入的文字内容。会自动消去有效字符前的空格,只返回输入的字符,不能得到带空格的字符串。
nextLine()方法返回的是Enter键之前的所有字符,它是可以得到带空格的字符串的。
( 简单点说,next只要字,nextLine:我全都要!)
调用nextInt则可以读取一个整数,类似的调用nextDouble则可以读取一个浮点数
int a = input.nextInt;将接收到的参数赋值给声明的一个变量a。
学会了吗?,让我们来做个练习,输入一个年份,判断是不是闰年。(闰年:公元年分除以4可整除但除以100不可整除或公元年分除以400可整除,为闰年)
先做,然后看下面的讲解
这是我实现这个功能的代码,但是我看了一下,有位小伙伴的代码更简便
有些同学可能对怎么表示整除有疑问,来让看看可以怎么表示。例如代码
a%4==0,即a除以4取余,如果是整数余数为0,==0,判断是否为0,为0就是true。
然后闰年要满足a被4整除并且a不能被100整除,所以用
a%4==0 && a%100!=0来表示;(&&两边都为true才是true)
然后a被400整除也可以,然后就用||(||两边只要一方为true就是true)
最后就是这个样子啦
(a%4==0 && a%100!=0)|| a%400==0
if嵌套语句
简单的说,就是套娃,当第一个条件符合则执行第一个执行语句,若不符合,则一直向下,直到找到条件符合的执行。
例如:
if (布尔表达式1){
执行语句1;
}else if(布尔表达式2){
执行语句2;
}else if(布尔表达式3){
执行语句3;
}else if(布尔表达式4){
执行语句4;
}else{
执行语句5;
}
类似这样,若布尔表达式1的值为true则运行执行语句1,程序结束;若为false,则判断布尔表达式2的值是否为true,若为true则执行语句2,程序结束;以此类推
来练习一下吧
设计一个程序,来做出一个选择分支,例如今天去哪啊。1.召唤师峡谷。2.魔兽世界。
假如去了召唤师峡谷,你要去哪个区呢?1.艾欧尼亚2.巨神坑3.
由于技术原因,我们目前学到的,只能通过让用户输入1或者2来决定选项了2333。
Switch分支语句
switch的语法格式如下:
switch(表达式){
case 取值1: 执行语句1
break;
case 取值2 : 执行语句 2
break;
case n:执行语句n //只要你想写多少个case都行
default : 执行语句
break;
}
switch case 语句有如下规则:
1.switch 语句中的变量类型必须是 byte、short、int 或者 char这几种其中一种,并且是确定的值。从 Java SE 7 开始,支持字符串 String 类型,同时 case 标签必须为字符串常量或字面量。
2.switch 语句可以拥有多个 case 语句。
3.case 语句中的值的数据类型必须与变量的数据类型相同,而且只能是常量或者字面常量,且所有case字句的取值应是不同的。
4.当变量的值与 case 语句的值相等时,那么case 语句之后的语句开始执行,直到 break 语句出现才会跳出 switch 语句。
5.当遇到 break 语句时,switch 语句终止。case 语句不必须要包含 break 语句。如果没有 break 语句出现,程序会继续执行下一条 case 语句,直到出现 break 语句,或者执行到switch语句的结束处为止。建议每一条都写break哦,不然容易出bug。
6.如果没有匹配的case语句则执行default语句,default子句是可选的,一般写在最后。
7.case后面的执行体可写{},也可以不写,例如case 取值:{}
我们用例子说明:
最后,其实case里面也可以用if来套娃的2333,比如去学校,再来一个选择先去教室,还是先去宿舍。
好的感谢阅读,今天的内容就到这里。感谢阅读(/▽\)