#day03课堂笔记
今日内容
- 选择结构语句
- 循环结构语句
- 控制跳转语句
- 随机数
##流程控制语句
#一.switch结构:
- 1:格式:
- 2:执行流程
总结:
1. 格式:
switch(表达式){
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
....
default:
语句体n+1;
[break;]
}
2. 执行流程:
* 首先执行表达式
* 拿着表达式的值依次跟case后面的值进行比较,如果有匹配的就执行相应的语句体;
遇到break就结束整个switch语句
* 如果都没有匹配的值,就会执行default中的语句体n+1
- switch语句的注意事项
A. 多个case后面的值是否可以重复?
不可以,如果一旦有重复的值,就没办法使用的是哪一个
B. switch()中可以给出的数据类型有?
基本数据类型:
byte short int char
引用数据类型:
String
枚举
C. default语句一定要放在最后的位置吗?
不一定,执行流程跟default语句放的位置没有什么关系
D. break语句可以省略吗?
可以省略 , 但是出现case穿透的效果
- switch语句的结束条件是?
* break;
* 走到最后一个{} 结束了
- switch使用前提
- 有一些是固定值,这个值还不能多,就考虑使用switch
- 案例: 春夏秋冬
##二、循环结构(重点掌握)
- 1.for循环结构:
- 2.while循环结构:
- 3.do…while循环结构(了解):
总结:
循环有那几块内容:
* 初始化语句 当做是定义一个变量 这个值是什么 int i = 1; int i = 0; int i = 10
* 条件判断语句 控制循环是否执行
* 循环体 重复做的某一件事情
* 条件控制语句 i++ i-- i+=2 i *=2
1:for循环结构:
格式:
for(初始化语句;条件判断语句; 条件控制语句){
循环体
}
* 执行流程:
* 1. 首先执行初始化语句
* 2. 执行条件判断语句
true: 执行循环体
false: 结束for循环
* 3. 执行循环体
* 4. 执行条件控制语句
* 5. 回到第二步继续判断,直到for循环结束
案例一: 输出数据
public static void main(String[] args) {
for(int i = 1 ; i <= 5 ; i++){
System.out.println(i);
}
for(int i = 5 ; i >= 1 ; i--){
System.out.println(i);
}
}
案例二: 求和
public static void main(String[] args) {
// 求和思想
int sum = 0;
// 0 + 1 + 2 + 3 + 4 + 5
for(int i = 1 ; i <= 5 ; i++){
// sum += i;
sum = sum + i;// 0 + 1;
}
System.out.println(sum);
}
案例三: 求偶数和
public static void main(String[] args) {
int sum = 0;
for(int i = 1 ; i <= 100 ; i++){
// 求偶数和
if(i % 2 == 0){
// 相加
sum += i;
}
}
System.out.println(sum);
}
案例四: 水仙花
public class ForDemo05{
public static void main(String[] args) {
for(int i = 100 ; i <= 999 ; i++){
// 对i进行获取 个位 十位 百位
int ge = i % 10;
int shi = i / 10 % 10;
int bai = i / 100;
// 水仙花数的特点: 每一位上立方和等于本身
if(ge * ge * ge + shi * shi * shi + bai * bai * bai == i){
System.out.println(i);
}
}
}
}
案例五: 统计水仙花个数 // 统计思想
2:while循环结构:
格式:
for(初始化语句;条件判断语句; 条件控制语句){
循环体
}
==============================
初始化语句
while(条件判断语句){
循环体
条件控制语句
}
* 执行流程:
* 1. 首先执行初始化语句
* 2. 执行条件判断语句
true: 执行循环体
false: 结束while循环
* 3. 执行循环体
* 4. 执行条件控制语句
* 5. 回到第二步继续判断,直到while循环结束
案例:珠穆朗玛峰
public class WhileDemo01{
public static void main(String[] args) {
// 定义变量 统计叠了多少次
int count = 0;
// 定义纸的厚度
double hou = 0.1;
// 定义珠穆朗玛峰的高度
int height = 8844430;
// 叠多少次,能叠到珠穆朗玛峰的高度
// 叠到什么时候,就不叠了
while(hou <= height){
hou *= 2;
count++;
}
System.out.println(count);
System.out.println(hou);
}
}
3:do...while循环结构(了解):
格式:
初始化语句
do{
循环体
条件控制语句
}while(条件判断语句);
* 执行流程:
* 1. 首先执行初始化语句
* 2. 执行循环体
* 3. 执行条件控制语句
* 4. 执行条件判断语句
true: 执行循环体
false: 结束do...while循环
* 5. 回到第二步继续判断,直到do...while循环结束
三、三种循环之间的区别:
- 1:do…while循环的与for循环和while循环的最大区别是什么?
- 2:for循环和while循环在有什么区别?
总结:
1.do...while: 不管条件是否满足,至少会先执行一次
for和while循环:先判断条件,如果条件满足就会执行循环,反之一次都不执行
2.最大区别是在于初始化语句的作用域
for循环:初始化语句在for循环中()中,只能是在for循环{}中使用,出了{}就不能在使用了
while循环:初始化语句在方法内的,这个初始化语句在方法内任意的位置都可以使用,出了这个方法就不能使用了
使用的顺序:
for--->while---> do...while
死循环:
for(;;){}
for(int i = 0;;i++){
}
for(int i = 0 ; i <= 5;){
}
while(true){
}
##四、控制循环语句
- 1.break语句
- 2.continue语句
总结:
1:break语句
break: 终止
作用: 用来终止循环的
使用场景:
* switch语句中
* 循环中: for while do...while
2:continue 语句
作用: 跳过本次循环,继续下一次循环
使用场景:
* 循环中: for while do...while
注意事项:控制循环语句,脱离使用场景,没有任何意义!
public class Demo07{
public static void main(String[] args) {
/*
for(int i = 20 ; i <= 100 ; i++){
// 到65岁就不做开发了
if(i == 65){
break;
}
System.out.println("今年"+i+"岁了还在做开发...");
}
*/
for(int i = 1 ; i <= 60 ; i++){
// 电梯只能是在奇数层停
if(i % 2 == 0){
continue;
}
System.out.println("电梯在第"+i+"层停了...");
}
}
}
##五、循环嵌套
- 什么是循环的嵌套?
循环中有循环
建议:循环嵌套不要太多
格式:
for(){
for(){
}
}
for(){
while(){
}
}
while(){
for(){
}
}
案例需求:
体育老师说: 围着操场跑10圈
体育老师说: 围着操场跑10圈
体育老师说: 围着操场跑10圈
// 外循环代表的是体育老师说了多少次跑10圈
for(int i = 1 ; i <= 3 ; i++){
// 每一次,都是跑10圈
for(int j = 1 ; j <= 10 ; j++){
System.out.println("跑圈");
}
}
循环嵌套的思想:
外循环执行一次,内循环执行n次
打印九九乘法表
##六、Random 随机数
Random随机数使用步骤?
* 导包
import java.util.Random
* 创建Random对象:
Random r = new Random();
* 随机数据
nextInt(int n);
int num = nextInt(100); // 随机的范围是[0,100)
int num = nextInt(100)+1;// 随机的范围是[0,99]+1 -->[1,100]
总结公式:
int number = r.nextInt(最大值-最小值+1)+最小值;
##案例: 猜数字
需求:
程序自动生成一个1-100之间的数字,使用程序实现猜出这个数字是多少?
当猜错的时候根据不同情况给出相应的提示
如果猜的数字比真实数字大,提示你猜的数据大了
如果猜的数字比真实数字小,提示你猜的数据小了
如果猜的数字与真实数字相等,提示恭喜你猜中了
public class RandomTest {
public static void main(String[] args) {
//要完成猜数字的游戏,首先需要有一个要猜的数字,使用随机数生成该数字,范围1到100
Random r = new Random();
int number = r.nextInt(100) + 1;
// 默认的随机的范围是在int整数范围之内
// int number = r.nextInt();
System.out.println(number);
while(true) {
//使用程序实现猜数字,每次均要输入猜测的数字值,需要使用键盘录入实现
Scanner sc = new Scanner(System.in);
System.out.println("请输入你要猜的数字:");
int guessNumber = sc.nextInt();
//比较输入的数字和系统产生的数据,需要使用分支语句。这里使用if..else..if..格式,根据不同情况进行猜测结果显示
if(guessNumber > number) {
System.out.println("你猜的数字" + guessNumber + "大了");
} else if(guessNumber < number) {
System.out.println("你猜的数字" + guessNumber + "小了");
} else {
System.out.println("恭喜你猜中了");
break;
}
}
}
}