今日目标
分支结构(if-else if - else)
分支结构(switch-case)
循环结构(for/do-while/while)
教学导航
- 掌握分支结构
- 掌握循环结构
- 总结区分循环结构中for、do-while/while循环的用法
1.分支结构(if-else if -else)
1.1需求分析
A:流程控制语句中的分类:
1.2 步骤分析
1.3 代码实现
/* 一条路
* if(判断表达式){
语句块1;
}
*/
//删除整行,ctrl+D
int age = 12000;
if(age < 18){
System.out.println("我是未成年!");
}
/* 两条路
* if(判断表达式){
语句块1;
}else{
语句块2;
}
*/
if (age < 18) {
System.out.println("我是未成年");
}else{
System.out.println("我们很年轻!");
}
/* 多条路
* if(判断表达式1){
语句块1;
}else if(判断表达式2){
语句块2;
}else if(判断表达式3){
语句块3;
}else{
语句块4;
}
*/
//王者荣耀
/*
* 三步走:
* 一.导包:
* 1.手动导包,java.util.Scanner;
* 2.红色的小叉叉,系统去修改。
* 3.快捷方式导包:ctrl+shift+o
* 二.创建对象
* 三.接收数据
*/
Scanner sc = new Scanner(System.in);
System.out.println("请输入你的rank分数,进行段位查询:");
int rank = sc.nextInt();
if (rank < 50) {
System.out.println("渣渣");
}else if(rank >= 50 && rank < 60){
System.out.println("黄金段位");
}else if(rank >= 60 && rank < 70){
System.out.println("铂金段位");
}else if(rank >= 70 && rank < 80){
System.out.println("钻石段位");
}else if(rank >= 80 && rank < 90){
System.out.println("星耀段位");
}else if(rank >= 90 && rank < 100){
System.out.println("最强王者");
}else{
System.out.println("无人能挡!");
}
sc.close();
1.5 练习
/*练习:
* 1.根据键盘用户的输入使用if-else if - else
* 90-100 优秀
* 80-89 良好
* 70-79 中等
* 60-69 差
* 60分以下 补考去吧!
* 2.判断闰年(if-else if-else)。根据用户输入的年份,
* 由程序去判断输入的年份是否是闰年
* 3.用户输入三个数,判断这三个数中的最大值。
*
*/
2.分支结构 switch-case
2.1需求分析
多条路可走
2.2技术分析
1)语法格式:
switch(变量/表达式){
case 字面值1:
语句块1;break;
case 字面值2:
语句块2;break;
......
default:
语句块n;
}
2.3执行流程
计算表达式/变量的值=====》判断是不是匹配字面值;
如果匹配,执行语句块1,执行break跳出当前结构;
如果不匹配,判断是不是匹配字面值2;
如果匹配,执行语句块2.执行break跳出当前结构;
如果判断上面都不匹配,有default的话,就执行default的语句。
2.4代码分析
2.5练习
3.循环结构(for循环)
3.1需求分析
1+2+3+…+100
活到老,学到老。
跑步圈数 10圈
打印店:100页
page = 1;page++;//打印一份
page = 2;page++;//打印两份
page++…100 打印100份
3.2技术分析
A:循环的三要素:
for(初始化表达式;条件表达式;修改初始化表达式的值){
循环体;
}
B:执行流程
1->2->4->3->2->4->3
3.3代码实现
package cn.tedu.day05;
/*
* for循环的实例
*/
public class ForDemo {
public static void main(String[] args) {
//打印10次 我们会成功
/*for(int i = 0;i < 10; i++){
System.out.println("我们会成功!");
}*/
//打印1+2+3+4+...+50的和
/*int sum = 0;
for (int i = 1; i < 51; i++) {
sum = sum + i;
}
System.out.println(sum);//1275
*/
/*
* *
* **
* ***
* ****
* 第一行:有一个*
* 第二行:有两个*
* 第五行:五个*
*/
/*for (int i = 1; i <= 5; i++) {//控制行
for (int j = 1; j <= i; j++) {//控制每一行个数*
System.out.print("* ");
}
System.out.println();
}*/
//死循环
/*for(;;){
System.out.println("我");
}*/
//continue break
/* for (int i = 0; i < 6; i++) {
for (int j = 0; j < 5; j++) {
System.out.println("i = " + i + "," + ",j=" +j);
}
if(i == 2){
break;
}
}*/
for (int i = 0; i < 6; i++) {
for (int j = 0; j < 5; j++) {
if(j == 2){
continue;
}
System.out.println("i = " + i + "," + ",j=" +j);
}
}
//增强型for循环---Person p
/* for (Person p : args){
}*/
}
}
3.4扩展内容
break和continue区别;
break的关键字可以使用swith-case和循环结构中,用于跳出当前结构。
continue:只能用在循环结构中,用于结束本次循环继续下一次循环。
在java5中引入了一个新的for循环,增强型for循环。
4.循环结构(while/do-while)
4.1需求分析
猜数字游戏:
int num = 250;
guess
循环结构:
循环变量:??? guess
1)Sytem.out.println(“请开始猜”);
int guess = sc.nextInt();
2)guess != num;
3)----1)
1-300
随机数的产生:
Math.random()-------0.0到0.9999999…
*1000 --------0.0到999.999999…
(int)强转 -------0到999
+1------1到1000
4.2技术分析
while(布尔表达式){
//循环体
}
//如果是true,则一直循环下去。
//先判断,后执行,有可能一次都不执行。
do{
循环体;
}while(条件/布尔表达式);
4.3代码分析
新建WhileDemo-----写一个1+2+3+…+100
int i=1;//初始化数字
int sum = 0;//求和
while(i <= 100){//循环条件
sum += i;//sum=sum + i
i++;
}
System.out.println("sum = " + sum);
4.4作业
1设计一个游戏:
我们手里有21个小球,我们让人和机器先后去取,每次人和机器只能取1-4个小球,不能多取,也不能不取,谁取到最后一个小球谁输。现在请你编写一个程序,要求我们先取,机器后取,机器赢,利于不败之地。
5.数组
5.1 需求分析
5.2技术分析
A:概念:一种数据类型(引用数据类型),相同数据类型元素的集合。
B:定义
int[] arr = new int[6];
C:初始化:
- int[] arr = new int[6];//默认值0,0,0
- int[] arr = { 1,2,3,4,5,6};
- int[] arr = new int[]{1,2,3,4,5};
int[] arr;
arr= {1,2,3};//不正确。只能生命的时候初始化
修改:arr = new int[] {1,2,3,4,5};//正确的
D:数组的访问
- 得到数组的长度