回顾:
1.运算符:
1)算术:+,-,*,/,%,++,--
2)关系:>,<,>=,<=,==,!= boolean
3)逻辑:&&,||,! boolean
4)赋值:=,+=,-=,*=,/=,%=
5)字符串连接:+
6)三目/条件:boolean?数1:数2
2.分支结构:
1)if:1
2)if...else:2
笔记:
1.分支结构:
3)if...else if结构:多条路
4)switch...case结构:多条路
优点:效率高、结构清晰
缺点:整数、相等
break:跳出switch
2.循环:反复执行一段相同或相似的代码
3.循环三要素:
1)循环变量的初始化
2)循环的条件(以循环变量为基础)
3)循环变量的改变(向着循环的结束变)
循环变量:在整个循环过程中所反复改变的那个数
4.循环结构:
1)while:先判断后执行,有可能一次都不执行
2)do...while:先执行后判断,至少执行一次
要素1与要素3相同时,首选do...while
练习:
完成经典案例:--------------------------2次
1)ScoreLevel成绩等级判断
2)CommandBySwitch命令解析程序
3)GuessingGame猜数字之while版----------1次
4)GuessingGame猜数字之do...while版
1)do...while语法 2)三要素 3)改错
1到1000的随机数
Math.random()----------0.0到0.9999999999999...
(int)------------------0到0
*1000------------------0.0到999.99999999999...
(int)------------------0到999
+1---------------------1到1000
+1---------------------1.0到1000.9999999999...
(int)------------------1到1000
GuessingGame
int num = 250; //手里面藏着的数
循环变量:用户猜的数guess
1)System.out.println("猜吧!");
int guess = scan.nextInt();
2)guess!=num
3)System.out.println("猜吧!");
guess = scan.nextInt();
猜吧!
300
太大了
猜吧!
200
太小了
猜吧!
251
太大了
猜吧!
250
恭喜你,猜对了
WhileDemo
案例一:
输出10次"行动是成功的阶梯"
行动是成功的阶梯
行动是成功的阶梯
行动是成功的阶梯
行动是成功的阶梯
行动是成功的阶梯
行动是成功的阶梯
行动是成功的阶梯
行动是成功的阶梯
行动是成功的阶梯
行动是成功的阶梯
循环变量:次数times
1)int times=0;
2)times<10
3)times++;
times=0/1/2/3/4/5/6/7/8/9/10时结束
案例二:
输出9的乘法表:
1*9=9
2*9=18
3*9=27
4*9=36
5*9=45
6*9=54
7*9=63
8*9=72
9*9=81
循环变量:乘数num
1)int num=1;
2)num<=9
3)num++;
num=1/2/3/4/5/6/7/8/9/10时结束
循环变量:份数num
1)int num=0;
2)num<8
3)num++;
num=0/1/2/3/4/5/6/7/8时结束
份数为0
够8份吗? 不够 打印一份 份数为1
够8份吗? 不够 打印一份 份数为2
够8份吗? 不够 打印一份 份数为3
够8份吗? 不够 打印一份 份数为4
够8份吗? 不够 打印一份 份数为5
够8份吗? 不够 打印一份 份数为6
够8份吗? 不够 打印一份 份数为7
够8份吗? 不够 打印一份 份数为8
够8份吗? 够了
循环变量:圈数count
1)int count=0;
2)count<3
3)count++;
count=0/1/2/3时结束
圈数为0
够3圈吗? 不够 跑一圈 圈数为1
够3圈吗? 不够 跑一圈 圈数为2
够3圈吗? 不够 跑一圈 圈数为3
够3圈吗? 够了
1)顺序结构:从上往下逐行执行,每句必走
2)分支结构:有条件的执行某语句一次,并非每句必走
3)循环结构:有条件的执行某语句多次,并非每句必走
if(boolean){ //一次
语句块
}
while(boolean){ //多次
语句块
}
能用switch..case实现的,都可以用if...else if来实现
能用if...else if实现的,不一定能用switch...case实现
if(command==1){
...
}else if(command==2){
...
}else if(command==0){
...
}else{
输入错误
}
当缺点不再是缺点的时候,就只剩优点了
if(score>=0 && score<=100) {
if(score>=90) {
System.out.println("A-优秀");
}else if(score>=80) {
System.out.println("B-良好");
}else if(score>=60) {
System.out.println("C-中等");
}else {
System.out.println("D-不及格");
}
}else {
System.out.println("成绩不合法");
}
A:成绩大于等于90
B:成绩大于等于80并且小于90
C:成绩大于等于60并且小于80
D:成绩小于60
int score = 55;
if(score>=90){
A-优秀
}else if(score>=80){
B-良好
}else if(score>=60){
C-中等
}else{
D-不及格
}
int score = 95;
if(score>=90){
A-优秀
}else{
if(score>=80 && score<90){
B-良好
}else{
if(score>=60 && score<80){
C-中等
}else{
if(score<60){
D-不及格
}
}
}
}
int a=8,b=2,c=5,d=1; //升序(a=2,b=5,c=8)
若a>b则交换,保证a<b
若a>c则交换,保证a<c
若a>d则交换,保证a<d
若b>c则交换,保证b<c
若b>d则交换,保证b<d
若c>d则交换,保证c<d
int a=8,b=55; //升序(a=5,b=8)
if(a>b){
int t=a; //t=8
a=b; //a=5
b=t; //b=8
}
---------------------若a>b则交换,保证a<b
int t=a;a=b;b=t;
int t=b;b=a;a=t;
System.out.println("请输入两个数:");
int a = scan.nextInt();
int b = scan.nextInt();
5 6
5 6
5
6