day05

回顾:
1.分支结构:
  3)if...else if:多
  4)switch...case:多
    优点:效率高、结构清晰
    缺点:整数(JDK1.7后支持String)、相等
    break:跳出switch
2.循环:反复执行一段相同或相似的代码
3.三要素:
  1)循环变量的初始化
  2)循环的条件(以循环变量为基础)
  3)循环变量的改变(向着循环的结束变)
  循环变量:在循环过程中所反复改变的那个数
4.循环结构:
  1)while:先判断后执行,有可能一次都不执行
  2)do...whille:先执行后判断,至少执行一次
                要素1与要素3相同时,首选do...while










笔记:
1.循环结构:
  3)for:固定次数循环
2.break:跳出循环
  continue:跳过循环体中剩余语句而进入下一次循环
3.三种循环结构的更佳适用情况:
  1)while:"当..."循环
          要素1与要素3不同时首选while
  2)do...while:"直到..."循环
               要素1与要素3相同时首选do...while
  3)for:固定次数循环,应用率最高
4.嵌套循环:
  1)循环中套循环,一般多行多列时使用,常常外层控制行,内层控制列
  2)执行规则:外层循环走一次,内层循环走所有次
  3)建议:嵌套层数越少越好,能用一层就不用两层,能用两层就不用三层
    若业务必须通过三层以上的循环才能解决,说明设计有问题
  4)break只能跳出一层循环
5.程序=算法+数据结构
  1)算法:解决问题的流程/步骤(顺序、分支、循环)
  2)数据结构:将数据按照某种特定的结构来保存
             数怎么存
    设计良好的/合理的数据结构会导致好的算法
6.数组:
  1)是一种数据类型(引用类型)
  2)相同数据类型元素的集合
  3)数组的定义:
      int[] arr = new int[10];
  4)数组的初始化:
      int[] arr = new int[3]; //0,0,0
      int[] arr = {2,5,8}; //2,5,8
      int[] arr = new int[]{2,5,8}; //2,5,8
      int[] arr;
      arr = {2,5,8}; //编译错误
      arr = new int[]{2,5,8}; //正确
  5)数组的访问:
    5.1)通过(数组名.length)可以获取数组的长度(元素的个数)
          int[] arr = new int[4];
  System.out.println(arr.length); //4
    5.2)通过下标/索引来访问数组中的元素
        下标从0开始,最大到(数组的长度-1)
  int[] arr = new int[3];
  arr[0] = 100; //给arr中第1个元素赋值为100
  arr[1] = 200; //给arr中第2个元素赋值为200
  arr[2] = 300; //给arr中第3个元素赋值为300
  arr[3] = 400; //数组下标越界异常
  System.out.println(arr[arr.length-1]); //输出最后一个元素的值
  6)数组的遍历:
      int[] arr = new int[10];
      for(int i=0;i<arr.length;i++){
        arr[i] = (int)(Math.random()*100);
      }
      for(int i=0;i<arr.length;i++){
        System.out.println(arr[i]);
      }
      for(int i=arr.length-1;i>=0;i--){
        System.out.println(arr[i]);
      }




练习:
1.完成经典案例:------------每人至少两次
  1)随机加法运算器
  2)九九乘法表
  3)求数组元素的最大值
2.完成课后作业




当日事当日毕






















int[] arr = {45,67,78,4};


找最大值算法:
1)假设第1个元素为最大值
    int max = arr[0];
2)遍历剩余元素,将剩余元素与max做对比,
  若剩余元素大于max,则修改max的值为较大的
    for(int i=1;i<arr.length;i++){
      if(arr[i]>max){
        max = arr[i];
      }
    }
max=45/67/78






















0
'0'--------48


























int[] arr = new int[10];
for(int i=0;i<arr.length;i++){
  arr[i] = 100;
}


for(int i=0;i<arr.length;i++){
  System.out.println(arr[i]);
}






for(int i=arr.length-1;i>=0;i--){
  System.out.println(arr[i]);
}


System.out.println(arr[0]);
System.out.println(arr[1]);
System.out.println(arr[2]);
System.out.println(arr[3]);
System.out.println(arr[4]);
System.out.println(arr[5]);
System.out.println(arr[6]);
System.out.println(arr[7]);
System.out.println(arr[8]);
System.out.println(arr[9]);












arr[0] = 100;
arr[1] = 100;
arr[2] = 100;
arr[3] = 100;
arr[4] = 100;
arr[5] = 100;
arr[6] = 100;
arr[7] = 100;
arr[8] = 100;
arr[9] = 100;












































int[] arr = new int[3]; //0,0,0
//给arr中的第2个数赋值为100
arr[1] = 100;


















arr[0]----------代表arr中的第1个元素
arr[1]----------代表arr中的第2个元素
arr[2]----------代表arr中的第3个元素
























int a=0;
int b=0;
int c=0;
b=100;


























//声明整型数组a,包含4个元素
//每个元素都是int类型,默认值为0
int[] a = new int[4];






//声明浮点型数组d,包含10个元素
//每个元素都是double型,默认值为0.0
double[] d = new double[10];






//声明布尔型数组b,包含26个元素
//每个元素为boolean型,默认值为false
boolean[] b = new boolean[26];




























int   a; //声明整型变量a
int[] a; //声明整型数组变量a


double[] d;
char[] c;
boolean[] b;






































出版社分类存储---------java编程思想(算法不简单)
图片类别分类存储-------java编程思想(算法简单)




















在某种条件下跳出多层循环,只是你自己想当然的想法


























6000000
for(int i=1;i<=100;i++){
  for(int j=1;j<=200;j++){
    for(int k=1;k<=300;k++){
      if(???){
        break; //跳出k层
      }
      System.out.println("aaa");
    }
  }
}


i=1
  j=1
    k走30次
  j=2
    k走30次
  ...
  j=20
    k走30次












i=1
  j走20次
i=2
  j走20次
...
i=10
  j走20次




















\t:水平制表位(固定占8位)





























循环的选择:
1)先看固定次数还是不固定次数:
  1.1)固定次数,直接上for
  1.2)不固定次数,再看要素1与要素3是否相同:
      1.2.1)相同时,上do...while
      1.2.2)不同时,上while




int score = 0; //总分
for(int i=1;i<=10;i++){ //10次
  //1)出题  2)答题  3)判题
}
System.out.println("总分为:"+score);














Addition














0到99


Math.random()--------------0.0到0.999999999999...
*100-----------------------0.0到99.99999999999...
(int)----------------------0到99






(1)15+25=?
算吧!
40
答对了
























(2)45+67=?
算吧!
101
答错了


(3)15+25=?
算吧!
40
答对了


(4)45+67=?
算吧!
101
答错了


(5)15+25=?
算吧!
40
答对了


(6)45+67=?
算吧!
101
答错了


(7)15+25=?
算吧!
40
答对了


(8)45+67=?
算吧!
101
答错了


(9)15+25=?
算吧!
40
答对了


(10)45+67=?
算吧!
101
答错了
总分为:50






















































//      1            2           3
for(int times=0 ; times<10 ; times++){
  System.out.println("行动是成功的阶梯"); //4
}


12432432432432432432432
12432432432432432432432


int times=0;      //1
while(times<10){  //2
  System.out.println("行动是成功的阶梯"); //4
  times++;        //3
}


































1/3/5/7/8/10/12-------------31天
4/6/9/11--------------------30天
2---------------------------28天/29天































  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值