分支结构 循环及循环三要素 java day04 0803

回顾:
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

猜你喜欢

转载自blog.csdn.net/u011807251/article/details/81412292