8.1总结
1.循环结构语句
for :使用最多: 普通for循环
求和思想
统计思想
什么是水仙花数 :三位数,每个位上的数据的立方相加的,是这个数据本身
157
while:其次才是这个while
do-while
引入两个死循环 :一定要出口条件
for(;;){
循环体;
}
while(true){ //使用多一些
...
}
2.跳转控制语句(重点)
break ; looper循环或者switch中用 (中断,结束...)
continue:继续 (循环中用,结束当期循环之后,立即进入下一次循环了)
return ; // 结束方法用的 (很少单独使用, 引入 --Java中的方法(函数))
3.switch语句
// 需求:
/* 键盘录入一个值,判断星期
1,星期一
2,星期二
3,星期三,
4,星期四
5,星期五
6,星期六
7,星期日
*/
import java.util.Scanner;
格式: switch(表达式或者某个变量值)
{
case 值1:
语句1;
break ;
case 值2:
语句2:
break ;
...
default:
语句n;
break ;
}
执行流程:
switch接收结果,
1)接收的结果和case后面的值1进行对比,成立,执行语句1,break 结束语句;
2)值1和switch接收的结果不匹配,和值2进行比较,成立,执行语句2, break,结束语句;*
3)...
如果上面case都不匹配,执行default语句,语句n,break ,结束..
public class SwicthDemo {
public static void main(String[] args) {
//创建键盘录入对象
Scanner sc = new Scanner(System.in) ;
//提示并录入数据
System.out.println("请输入一个星期(1-7的数据): ") ;
int week = sc.nextInt() ;
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 ;
}
}
}
4.switch语句之注意事项
switch语句中的注意事项也是 (考点)
1)关于switch中的case语句后面只能常量,不能是变量 (体现Java是一种强类型语言)
----前端的javascript:它里面的swtich的case是可以是变量,可以是个常量
2)在书写switch语句的标准结构,不忘了break,如果语句中忘了书写break,会出现一个现象:case穿透!
在有的需求里面利用 case穿透 来完成一些需求;
3)关于switch语句的结束条件
a)要么遇见break结束
b)程序默认执行到末尾
4)关于default语句可以在switch语句中的任何位置,不影响语句的执行流程;
不管在任何位置,只要case语句都不匹配,执行default;
如果default语句的末尾,break可以省略;
5.循环结构语句之for
/*
需求:需要在控制台输出 10次 "我爱高圆圆"
这一个代码:10句话放在程序中
1)阅读性差
2)代码的冗余度非常高(重复性太大)
这个时候,计算机语言提供了流程控制语句之循环语句
//明确循环次数优先的for循环
格式
for(初始化语句;条件表达式;控制体语句或者步长语句){
循环体语句;
}
执行流程
1) 初始化语句:给变量赋值 (只执行一次)
2)然后执行条件表达式,看其是否成立,如果成立,执行的是循环体语句
------>再次回到控制体语句或者步长语句
--->变量自增或者自减
3)再次执行条件表达式,是否成立,成立,继续循环体语句
---->再次回到控制体语句或者步长语句
---->变量自增或者自减
....
4)一直执行到条件表达式不成立,for循环结束;
*/
public class Demo {
public static void main(String[] args) {
//最原始的做法:输出10句话
System.out.println("我爱高圆圆") ;
System.out.println("我爱高圆圆") ;
System.out.println("我爱高圆圆") ;
System.out.println("我爱高圆圆") ;
System.out.println("我爱高圆圆") ;
System.out.println("我爱高圆圆") ;
System.out.println("我爱高圆圆") ;
System.out.println("我爱高圆圆") ;
System.out.println("我爱高圆圆") ;
System.out.println("我爱高圆圆") ;
System.out.println("------------------------------------------------
");
//10次 "我爱高圆圆“
/**
* for(初始化语句;条件表达式;控制体语句或者步长语句){
* 循环体语句;
* }
*/
for(int x = 1 ; x <=10;x++){ //x=1,x<=10, x=2,2<=10,x = 3 ,
3<=10,x=10,x<=10,x=11,11<10
System.out.println("我爱高圆圆") ;//1,2,3....... 10
}
}
}
6.循环求和思想
/*
循环求和思想
需求:
1)在控制台输出1-10的每一个数据
2)循环的求和思想
在控制台输出1-10的之间的所有的数据之和
1+2+3+4+5+6+7+8+9+10 :原始做法比较麻烦,随着数据规模越来越大,这种做法不合适;
求和思想:
将上面的这种格式变形一下:
定义一个结果变量: 从0开始 sum这个变量
0 + 1 = 1 ;
1 + 2 = 3 ;
3 + 3 = 6 ;
6 + 4 = 10 ;
10 +5 = 15 ;
15 + 6 = 21 ;
21 + 7 =28 ;
....
两个加数:
前面的这个加数:就是求和结果变量sum,从0开始后面的这个加数:就是1-10的数据;
使用步骤:
1)定义一个最终结果变量sum,从0开始记录
2)使用for(初始化语句;条件表达式;控制体语句){
//循环体语句
//先取出来每一个数据
使用结果变量就是上面的数据求和,然后再赋值给最终结果变量;
}
3)输出sum即可
*/
public class ForDemo {
public static void main(String[] args) {
//1)在控制台输出1-10的每一个数据
//原始的做法
System.out.println(1) ;
System.out.println(2) ;
System.out.println(3) ;
System.out.println(4) ;
System.out.println(5) ;
System.out.println(6) ;
System.out.println(7) ;
System.out.println(8) ;
System.out.println(9) ;
System.out.println(10) ;
System.out.println("--------------------------------") ;
//上面的重复度很高,改进
/* for(初始化语句;条件表达式;控制体语句或者步长语句){
循环体语句;
}*/
for(int i = 1;i<=10 ; i ++){ //x=1,1<10 , i++-->2 <=10
System.out.println(i) ; //1, 2....
}
System.out.println("---------------求和思想的引入------------------")
;
// 在控制台输出1-10的之间的所有的数据之和
//原始的做法:
System.out.println(1+2+3+4+5+6+7+8+9+10) ;
System.out.println("---------------------------------------------") ;
//定义一个结果变量
int sum = 0 ;
for(int x = 1 ; x <=10 ; x ++) {// 1-10之间的数据
//x的取整:1,2....10;
sum += x ; //sum = sum + x ;
/*
sum = 0 ;
x = 1 ; x <=10 ;成立---循环体: sum = sum+x 0 +1 =1 x++
x = 2 ; 2<=10 ;成立--- 循环体: 1 + 2 = 3 -- sum = 3 ; x ++
x = 3 ; 3<=10 ; 成立--- 循环体: 3+3 = 6 --- sum= 6; x++
x=4 .....................
*/
}
System.out.println("1-10的数据之和是:"+sum);
}
}
7.水仙花获取
/*
需求:在控制台输出所有的水仙花数
水仙花数
水仙花指的是三位数,而且这个三位数的每一个位上的立方相加就是当期数据本身;
举例:153 = 1 * 1 * 1 + 5*5*5 + 3*3*3
153 % 10 = 3 ;---确定个位的数据
153 / 10 % 10 = 5 --- 确定十位的数据
153 /10 /10 %10 = 1 --- 确定百位上的数据
分析:
1)三位数,明确了范围 100-999---使用for循环 x
2) 确定每各位的数据本身的值:定义三个变量,分别代表个位,十位,百位数据本身
int ge = 当前这个数据 % 10 ;
int shi = 当前这个数据 /10 %10 ;
int bai = 当前这个数据 /10/10 % 10 ;
3)for循环中加入逻辑判断
如果当前x == (ge*ge*ge)+(shi*shi*shi)+(bai*bai*bai),
满足条件,直接输出x
*/
public class forDemo3 {
public static void main(String[] args) {
System.out.println("水仙花数是:");
// 1)三位数,明确了范围 100-999---使用for循环 x
for (int x = 100; x < 1000; x++) {
//x:100-999的数据
//确定每各位的数据本身的值:
// 定义三个变量,分别代表个位,十位,百位数据本身
int ge = x % 10; //x=153
int shi = x / 10 % 10;
int bai = x / 10 / 10 % 10;
//如果当前x == (ge*ge*ge)+(shi*shi*shi)+(bai*bai*bai),满足条件,
直接输出x
if (x == (ge * ge * ge + shi * shi * shi + bai * bai * bai)) {
System.out.println(x);
}
}
}
}
本文详细介绍了Java中的循环结构,包括for、while和do-while循环,强调了break和continue语句的作用。同时,深入讲解了switch语句的使用,通过实例展示了如何根据输入判断星期。此外,还探讨了求和思想在循环中的应用,并解释了水仙花数的概念及求解方法。
292

被折叠的 条评论
为什么被折叠?



