回顾:
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
练习:
1.完成经典案例:---------------------每人至少两次
1)ScoreLevel成绩等级判断
2)CommandBySwitch命令解析程序
3)Guessing猜数字之while(1遍)
4)Guessing猜数字之do...while(2遍)
2.完成课后作业
num为1到1000之内的随机数
Math.random()-----------0.0到0.9999999999999...
*1000-------------------0.0到999.99999999999...
(int)-------------------0到999
+1----------------------1到1000
int a = 250;
int a = scan.nextInt();
int a = ?;
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
恭喜你,猜对了
案例一:
输出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=9;
2)num>=1
3)num--;
num=9/8/7/6/5/4/3/2/1/0时结束
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<6
3)num++;
num=0/1/2/3/4/5/6时结束
份数为0
够6份吗?不够 打印一份 份数为1
够6份吗?不够 打印一份 份数为2
够6份吗?不够 打印一份 份数为3
够6份吗?不够 打印一份 份数为4
够6份吗?不够 打印一份 份数为5
够6份吗?不够 打印一份 份数为6
够6份吗?够了
循环变量:圈数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{
}
当缺点不再是缺点的时候,就只剩优点了----就是首选
A:成绩大于等于90
B:成绩大于等于80并且小于90
C:成绩大于等于60并且小于80
D:成绩小于60
1)ABCD四个档,只有可能走其中之一
2)若没有最后的else,ABC三个档有可能一个都不走
3)若有最后的else,ABCD必走其中之一
int score = 45;
if(score>=90){
A-优秀
}else if(score>=80){
B-良好
}else if(score>=60){
C-中等
}else{
D-不及格
}
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("成绩不合法");
}
int score = 85;
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)
//若a>b则交换,保证a<b
if(a>b){
int t=a; //t=8
a=b; //a=5
b=t; //b=8
}
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