java第五天循环结构,数组

  1. 循环结构:

    • for结构:应用率高、与次数相关的循环

      • 语法:

        // 1 2 3

        for(要素1;要素2;要素3){

        语句块/循环体----------------反复执行的代码 4

        }

      • 执行过程:

        1243243243243243243......2

      • 代码演示:

        //for循环中的循环变量i,作用域仅在当前for中
        for(int i=1;i<=9;i++){
            System.out.println(i+"*9="+i*9);
        }
        for(int i=1;i<=9;i+=2){
            System.out.println(i+"*9="+i*9);
        }
        for(int i=9;i>=1;i--){
            System.out.println(i+"*9="+i*9);
        }
        
        for(int times=0;times<5;times++){
            System.out.println("行动是成功的阶梯");
        }
        System.out.println("继续执行...");
        /*
        执行过程:
        times=0  true  输出
            times=1  true  输出
            times=2  true  输出
            times=3  true  输出
            times=4  true  输出
            times=5  false for循环结束
            输出继续执行...
        */
        
        //for的特殊格式:----------了解
        int i=1;
        for(;i<=9;i++){
            System.out.println(i+"*9="+i*9);
        }
        for(int i=1;i<=9;){
            System.out.println(i+"*9="+i*9);
            i++;
        }
        for(;;){ //没有条件的循环就是一个死循环
            System.out.println("我要学习...");
        }
        
        for(int i=1,j=5;i<=5;i+=2,j-=2){
        }
        /*
          i=1,j=5  true
          i=3,j=3  true
          i=5,j=1  true
          i=7,j=-1 false
         */
  2. 三种循环结构的选择规则:

    • 先看循环是否与次数相关:

      • 若相关----------------------------直接上for

      • 若无关,再看要素1与要素3是否相同:

        • 若相同------------------------直接上do...while
        • 若不同------------------------直接上while
  3.  break:跳出循环
    • for(int i=1;i<=9;i++){
          if(i==4){ //在某种特定条件下,提前结束循环
              break;
          }
          System.out.println(i+"*9="+i*9);
      }
      /* 
        i=1  true  1*9=9
        i=2  true  2*9=18
        i=3  true  3*9=27
        i=4  true
      */    
         

      continue:跳过循环体中剩余语句而进入下一次循环

      //输出9的乘法表,只要不能被3整除的
      for(int i=1;i<=9;i++){
          if(i%3!=0){
              System.out.println(i+"*9="+i*9);
          }
      }
      
      //输出9的乘法表,跳过能被3整除的
      for(int i=1;i<=9;i++){
          if(i%3==0){
              continue; //跳过循环体中剩余语句而进入下一次循环
          }
          System.out.println(i+"*9="+i*9);
      }
      /*
          i=1  1*9=9
          i=2  2*9=18
          i=3
          i=4  4*9=36
          i=5  5*9=45
          i=6
          i=7  7*9=63
          i=8  8*9=72
          i=9
          i=10
      */
    •  

    • 随机加法运算器案例:

      package day05;
      import java.util.Scanner;
      //随机加法运算器
      public class Addition {
          public static void main(String[] args) {
              Scanner scan = new Scanner(System.in);
              int score = 0; //总分
              for(int i=1;i<=10;i++) { //10次
                  int a = (int)(Math.random()*100); //加数a,0到99之间
                  int b = (int)(Math.random()*100); //加数b
                  int result = a+b; //存正确答案
                  System.out.println("("+i+")"+a+"+"+b+"=?"); //1)出题
      
                  System.out.println("算吧!----输入-1可提前结束");
                  int answer = scan.nextInt(); //2)答题
      
                  if(answer==-1){ //3)判题
                      break;
                  }
                  if(answer==result){
                      System.out.println("答对了");
                      score += 10; //答对1题,加10分
                  }else{
                      System.out.println("答错了");
                  }
              }
              System.out.println("总分为:"+score);
          }
      }

    • 嵌套循环:

    •                  循环中套循环,常常多行多列时使用,一般外层控制行,内层控制列

    •                  执行过程:外层循环走一次,内层循环走所有次
    •                  建议:嵌套层数越少越好,能用一层就不用两层,能用两层就不用三层,若                   业务必须通过三层以上的循环才能解决,说明你的设计有问题
    •                   break只能跳出当前一层循环
    •  
      for(int num=1;num<=9;num++){ //控制行
          for(int i=1;i<=num;i++){ //控制列
              System.out.print(i+"*"+num+"="+i*num+"\t");
          }
          System.out.println(); //换行
      }
      /*
        执行过程:
          num=3
            i=1  1*3=3
            i=2  2*3=6
            i=3  3*3=9
            i=4  false
            换行
          num=2
            i=1  1*2=2
            i=2  2*2=4
            i=3  false
            换行
          num=1
            i=1  1*1=1
            i=2  false
            换行
       */

      6.数组:

      1. 是一种数据类型(引用类型)

      2. 相同数据类型元素的集合

      3. 定义:

        //声明int型数组arr,包含10个元素,每个元素都是int型,默认值为0
        int[] arr = new int[10];
      4. 初始化:给数组中的元素做初始化

        int[] arr = new int[3]; //0,0,0
        int[] arr = {1,4,7}; //1,4,7
        int[] arr = new int[]{1,4,7}; //1,4,7
        int[] arr;
        //arr = {1,4,7}; //编译错误
        arr = new int[]{1,4,7}; //正确

      5. 访问:访问的是数组中的元素

        • 通过(数组名.length)可以获取数组的长度(元素的个数)

          int[] arr = new int[3];
          System.out.println(arr.length); //3
        • 通过下标/索引来访问数组中的元素

          下标从0开始,最大到(数组的长度-1)

          int[] arr = new int[3];
          arr[0] = 100; //给第1个元素赋值为100
          arr[1] = 200; //给第2个元素赋值为200
          arr[2] = 300; //给第3个元素赋值为300
          System.out.println(arr[arr.length-1]); //输出最后一个元素的值
      6. 遍历/迭代:从头到尾挨个走一遍

        int[] arr = new int[10];
        for(int i=0;i<arr.length;i++){ //遍历arr数组
            //arr[i]代表arr中的每一个元素
            //给每个元素赋值为0到99之间的随机数
            arr[i] = (int)(Math.random()*100); 
            System.out.println(arr[i]); //输出每个元素的值
        }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值