选择结构(switch语句)(掌握)
1)格式:switch(表达式){ case 值1:语句体1; break; case 值2:语句体2; break; ... default:语句体n+1; break; }
2)格式解释
switch表示这是switch语句
· 表达式的取值: byte、short、int、char
·JDK5以后可以是枚举
·JDK7以后可以是string
case后面跟的是要和表达式进行比较的值
语句体部分可以是一条或多条语句。
break表示中断,结束的意思,可以结束switch语句。
default语句表示所有情况都不匹配的时候,就执行该处的内容,和if语句的else相似。
3)执行流程
首先计算出表达式的值。其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束。最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束。
4)流程图
switch的流程图
5)案例
键盘录入一个数据,根据这个数据,输出对应的星期?例如:键盘录入1,对应输出星期一;键盘录入2,对应输出星期二......
switch语句体代码
6)注意事项
I. case后面只能是常量,不能是变量,而且,多个case后面的值不能出现相同的。
II. default可以省略,一般不建议。除非判断的值是固定的。
III. break可以省略,但不建议。否则结果可能不是你想要的。会出现一个现象(case穿透)。
IV. default的位置可以出现在任意地方。
V. switch语句的结束条件,遇到break或者执行到程序末尾。
7)看程序写结果
结果为:y=4
结果为:b=6
8)switch语句练习
I. 模拟做单项选择题,根据你的选择,给出对应的答案。(表达式是字符的情况)
II. 键盘录入字符串,根据给定的字符串,来输出你选择的字符串是什么?(表达式是字符串的情况)
III. 用switch语句实现键盘录入月份,输出对应的季节
9)在做判断的时候,我们有两种选择,if语句和switch语句,那么,我们到底该如何选择使用哪种语句呢?
if语句使用场景:I.针对结果是boolean类型的判断 II.针对一个范围的判断 III.针对几个常量值的判断
switch语句使用场景:I.针对几个常量值的判断
循环结构(掌握)
1)概述
循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循环,否则循环将一直执行下去,形成死循环。
2)循环语句的组成
I. 初始化语句:一条或者多条语句,这些语句完成一些初始化操作。
II. 判断条件语句:这是一个boolean表达式,这个表达式能决定是否执行循环体。
III. 循环体语句:这个部分是循环体语句,也就是我们要多次做的事情。
IV. 控制条件语句:这个部分在一次循环体结束后,下一次循环判断条件执行前执行。通过用于控制循环条件中的变量,使得循环在合适的时候结束。
> for循环语句
1)for循环语句格式:for(初始化语句; 判断条件语句; 控制条件语句) { 循环体语句; }
2)执行流程
A:执行初始化语句 —— B:再执行判断条件语句,看其结果是true还是false,(如果是false,循环结束)如果是true,继续执行; —— C:执行循环体语句 —— D:执行控制条件语句 —— E:回到B继续
3)流程图
for循环语句的流程图
4)示例:输出十遍"HelloWorld"
5)注意事项
I. 判断条件语句的结果是一个boolean类型
II. 循环体语句如果是一条语句,大括号可以省略;如果是多条语句,大括号不能省略。(建议永远不要省略。)
III. 一般来说:有左大括号就没有分号,有分号就没有左大括号。
6)for循环的练习题
(1)请在控制台输出数据1~10
(2)请在控制台输出数据10~1
(3)求出1~10之间的数据之和
结果为:sum = 55
(4)求出1~100之间偶数的和
结果为:1~100之间的偶数和为2550
(5)求出1~100之间奇数的和
结果为:1~100之间的奇数和为2500
(6)求5的阶乘
结果为;5的阶乘为:120
(7)在控制台输出所有的“水仙花数”
所谓的水仙花数是指一个三位数,其各位数字的立方和等于该数本身。举例:153就是一个水仙花数。153 =1*1*1 + 5*5*5 +3*3*3
控制台结果:153 370 371 407
(8)统计“水仙花数”共有多少个
控制台:4
(9)请在控制台输出满足如下条件的五位数
个位等于万位,十位等于千位,个位+十位+千位+万位=百位
控制台结果:10201,11411,12621,13831,20402,21612,22822,30603,31813,40804
(10)请统计1~1000之间同时满足如下条件的数据有多少个? 对3整除余2,对5整除余3,对7整除余2
控制台的结果:10
> while循环语句
1)基本格式:while(判断条件语句) { 循环体语句; }
2)扩展格式:初始化语句; while(判断条件语句){ 循环体语句; 控制条件语句; }
3)流程图
while循环语句的流程图
4)示例:输出10次"HelloWorld"
5)while循环语句的练习题
(1)求出1~100之和
控制台输出:1~100的和为5050
(2)统计水仙花数有多少个
控制台输出:水仙花数的个数为4
(3)我国最高山峰是珠穆朗玛峰:8848m,我现在有一张足够大的纸张,厚度为:0.01m。请问,我折叠多少次,就可以保证厚度不低于珠穆朗马峰的高度?
控制台输出:需要折20次
6)for循环和while循环的区别
for循环语句和while循环语句可以等价转换,但还是有些小区别的。
I. 使用区别:控制条件语句所控制的那个变量,在for循环结束后,就不能再被访问到了,而while循环结束还可以继续使用,如果你想继续使用,就用while,否则推荐使用for。原因是for循环结束,该变量就从内存中消失,能够提高内存的使用效率。
II. 场景区别:for循环适合针对一个范围判断进行操作;while循环适合判断次数不明确操作。
> do...while循环语句
1)基本格式:do{ 循环体语句; }while(判断条件语句);
2)扩展格式:初始化语句; do{ 循环体语句; 控制条件语句; }while(判断条件语句);
3)流程图
do...while的流程图
4)示例:输出十次"HelloWorld"
5)循环语句的区别
do...while循环至少执行一次循环体。而for,while循环必须先判断条件是否成立,然后决定是否执行循环语句。
那么,我们一般使用哪种循环呢? 优先考虑for,其次考虑while,最后考虑do...while
6)注意死循环
A:一定要注意控制条件语句控制的那个变量的问题,不要弄丢了,否则就容易死循环。
B:两种最简单的死循环格式 while(true) {...} for(;;) {...}
7)练习题
(1)请输出一个4行5列的星星(*)图案,如下
效果图
(2)请输出如下图形
效果图
(3)需求:在控制台输出九九乘法表
效果图
跳转控制语句(掌握)
1)概述
前面我们已经说过了,Java中的goto是保留字目前不能使用。虽然没有goto语句可以增强程序的安全性,但是也带来很多不便,比如说,我想在某个循环知道到某一步的时候就结束,现在就做不了这件事情。为了弥补这个缺陷,Java就提供了break,continue和return来实现控制语句的跳转和中断。
2)分类:break中断 continue继续 return返回
> break
1)使用场景:I. 在选择结构switch语句中 II. 在循环语句中 (离开使用场景的存在是没有意义的)
2)作用:I. 跳出单层循环 II. 跳出多层循环(带标签的跳出 格式:标签名:循环语句)【标签名要符合java的命名规则】
3)示例
4)练习题
小芳的妈妈每天给她2.5元钱,她都会存起来,但是,每当这一天是存钱的第5天或者5的倍数的话,她都会花去6元钱,请问,经过多少天,小芳才可以存到100元钱。
控制台输出:经过74天,小芳才可以存到100元钱
> continue
1)使用场景:在循环语句中 (离开使用场景的存在是没有意义的)
2)作用:单层循环表示退出本次循环,也可以带标签使用
3)练习题
I. 在控制台输出2次:"Java基础班" ——> break
II. 在控制台输出7次:"Java基础班" ——> continue
III. 在控制台输出13次:"Java基础班" ——> System.out.println("Java基础班")
> return
1)概述
return关键字不是为了跳转出循环体,更常用的功能是结束一个方法,也就是退出一个方法。跳转到上层调用的方法。这个在方法的使用那里会在详细的讲解。
2)特点:一旦遇到return,程序就不会在继续往后执行