Day03

本文深入探讨了循环结构,包括for循环、while循环和do-while循环的特点与应用,通过实例解析了循环的嵌套使用及break和continue的差异。同时,文章详细介绍了数组的概念、定义、初始化方式以及在计算身份证最后一位数字的应用案例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

循环结构

  • 1.for循环:

    A.在一些特定的情况下,需要重复执行一段代码时,需要使用到for循环。

    ​ 1+2+3+4+5+.......+100

public class ForDemo { 
    public static void main(String[] args) { 
        int result = 0; 
        for(int i =1;i<=100;i++){ 
            result+=i; 
        }
    System.out.println("result="+result); 
    }
}
  • B.for循环的格式:

    for(初始化表达式①;条件表达式②;修改表达式的值③){    
        循环体④; 
    }

    执行顺序①②④③②④③

  • C.for循环的嵌套:

    public class ForDemo01 { 
        public static void main(String[] args) { 
            // 倒三角形 
            for(int i=1;i<=5;i++){ 
                for(int j=5;j>=i;j--){ 
                   System.out.print("*"); 
                } 
            System.out.println(); 
            }     
            // 正三角形 
            for(int i=1;i<=5;i++){ 
                for(int j=1;j<=i;j++){ 
                    System.out.print("*"); 
                }
                System.out.println(); 
            } 
        } 
    }
    • D:break和continue的区别:

      • continue:用在循环结构中,用于结束当前本次循环,继续下一次循环。

      • break:用于跳出当前循环。

  • 2.while循环

    while(){ 
        循环体; 
    }
    • 猜数字

      import java.util.Scanner; 
      public class WhileDemo { 
          @SuppressWarnings("resource") 
          public static void main(String[] args) { 
              int num =(int)(Math.random()*200); 
              System.out.println("num="+num); 
              Scanner sc =new Scanner(System.in); 
              int guess =sc.nextInt(); 
              while(guess!=num){ 
                  if(guess>num){ 
                      System.out.println("猜大了"); 
                      break; 
                  }else if(guess<num){ 
                      System.out.println("猜小了"); 
                      break; 
                  } 
              System.out.println("再猜:"); 
              guess =sc.nextInt(); 
              } 
              if(guess==num){ 
                  System.out.println("猜对了"); 
              }else{ 
                  System.out.println("下次继续吧"); 
              } 
          } 
      }

       

  • do-while循环

    do{ 
        循环体; 
    }while(布尔表达式);
    • 猜数字

      import java.util.Scanner; 
      public class DoWhileDemo { 
          public static void main(String[] args) { 
              int num =(int)(Math.random()*200); 
              System.out.println("num="+num); 
              Scanner sc =new Scanner(System.in); 
              int guess =sc.nextInt(); 
              do{ 
                  if(guess>num){ 
                      System.out.println("猜大了"); 
                  }else if(guess<num){ 
                      System.out.println("猜小了"); 
                  } 
                   System.out.println("再猜:"); 
                  guess =sc.nextInt(); 
              }while(guess!=num); 
              if(guess==num){ 
                  System.out.println("猜对了"); 
              }else{ 
                  System.out.println("下次继续吧"); 
              } 
          } 
      }

       

数组:

  • 1.概念:是一种引用数据类型,相同数据元素的集合。

  • 2.定义:int[ ] arr = new int arr[ ];

  • 3.初始化:

    • 动态初始化:初始化的时候指定了数组的长度,初始化的值是由系统来分配决定的。

    • 静态初始化:初始化的时候指定了元素的初始值,长度由系统决定的。

  • 4.java内存分配

    • 栈:存储的是局部变量,局部变量定义在方法中的变量,使用完毕后立即被销毁,进行回收。

    • 堆:存储的是new出来的对象,每一个对象都是有地址的,每一个对象都有默认值;使用完毕后,会让垃圾回收器空闲的时候进行回收。

    • 方法区:OOP

    • 本地方法区:和系统有关系

    • 寄存区:给cpu使用

    利用数组计算身份证的最后一位:

    /** 
    * 
    * 利用身份证号的前17位计算第十八位数字 
    */ 
    import java.util.Scanner; ​ 
    public class CardDemo { 
        public static void main(String[] args) { 
            int[] card = new int[17]; 
            int[] data = {7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2}; 
            char code[] = {'1','0','x','9','8','7','6','5','4','3','2'}; 
            Scanner sc =new Scanner(System.in); 
            int sum=0; 
            for(int i = 0;i<17;i++){ 
                System.out.println("请依次输入前17位:"); 
                card[i]=sc.nextInt(); 
            } 
            for(int i = 0;i<17;i++){ 
                sum += card[i] * data[i]; 
            } 
            System.out.println("你的身份证最后一位是"+code[sum%11]); 
        } 
    } ​

     

     

内容概要:本文档详细介绍了一个基于MATLAB实现的跨尺度注意力机制(CSA)结合Transformer编码器的多变量时间序列预测项目。项目旨在精准捕捉多尺度时间序列特征,提升多变量时间序列的预测性能,降低模型计算复杂度与训练时间,增强模型的解释性和可视化能力。通过跨尺度注意力机制,模型可以同时捕获局部细节和全局趋势,显著提升预测精度和泛化能力。文档还探讨了项目面临的挑战,如多尺度特征融合、多变量复杂依赖关系、计算资源瓶颈等问题,并提出了相应的解决方案。此外,项目模型架构包括跨尺度注意力机制模块、Transformer编码器层和输出预测层,文档最后提供了部分MATLAB代码示例。 适合人群:具备一定编程基础,尤其是熟悉MATLAB和深度学习的科研人员、工程师和研究生。 使用场景及目标:①需要处理多变量、多尺度时间序列数据的研究和应用场景,如金融市场分析、气象预测、工业设备监控、交通流量预测等;②希望深入了解跨尺度注意力机制和Transformer编码器在时间序列预测中的应用;③希望通过MATLAB实现高效的多变量时间序列预测模型,提升预测精度和模型解释性。 其他说明:此项目不仅提供了一种新的技术路径来处理复杂的时间序列数据,还推动了多领域多变量时间序列应用的创新。文档中的代码示例和详细的模型描述有助于读者快速理解和复现该项目,促进学术和技术交流。建议读者在实践中结合自己的数据集进行调试和优化,以达到最佳的预测效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值