首页 > 编程语言 >Java基础day03---循环,数组,杨辉三角

Java基础day03---循环,数组,杨辉三角

时间:2024-10-24 08:47:31浏览次数:3  
标签:arr Java String day03 int names 数组 杨辉三角 new

Java基础day03

接day02----流程控制---3、循环

一、循环

循环语法结构执行逻辑
通用for循环for(初始化;条件判断;步长设置){ //循环体 }第一次循环:初始化,条件判断,循环体,步长设置 ;第2-n次循环:条件判断,循环体,
while循环while(判断条件){ //循环体 }先条件判断再执行循环体
do.......while循环do{ //循环体 }while(条件判断);先执行循环体再执行条件判断

举例:

public class Demo1AnLi {
    public static void main(String[] args) {
        //利用for循环输出1-100
        for (int i = 1; i <=100 ; i++) {
            System.out.println(i);
        }
​
        //求1-100的偶数-----continue
        for (int i = 1; i <=100 ; i++) {
            if (i%2!=0) {
               continue;
            }
            System.out.println(i);
        }
​
        //while循环
//        int i=0;
//        for (; i <=100 ;) {
//            i++;
//            if (i%2!=0) {
//                continue;
//            }
//            System.out.println(i);
//        }
//
        int i=0;
        while (i<=100){
            i++;
            if (i%2!=0) {
                continue;
            }
            System.out.println(i);
​
        }
        
            //do....while
        int i=0;
        do {
            i++;
            if (i%2!=0) {
                continue;
            }
            System.out.println(i);
​
        }while (i<=100);
    }
}
​

3.2 continue和break的区别

语句说明
break跳出当前结构体(switch和循环语句)
continue跳出本次循环进入下一次循环

案例:1.在控制台打印 五个*在一行

2.在控制台打印等腰三角形

         *

       *   *

     *   *   *

   *   *   *  *

 *   *   *   *  *

分析:

每行的*号个数与行数一致

每行的开头空格数+*号等于5个---不包含*里面空格

3.打印如下三角:

         *

      *    *

     *      *

    *         *

   *  *  *  *  *

public class Demo2exercise {
    public static void main(String[] args) {
​
        //在控制台输出  ***** 使用循环
        for (int i = 0; i <5 ; i++) {
            System.out.print("*");
        }
​
        //循环5行五个*
        for (int j = 0; j <5 ; j++) {//行
            for (int i = 0; i <5 ; i++) {//列
                System.out.print("*");
            }
            System.out.println();
        }
            
        //循环等腰三角形
        for (int i = 1; i <6 ; i++) {//行
            //空格
            for (int j = 0; j <(5-i) ; j++) {
                System.out.print(" ");
            }
            for (int k= 1; k <=i ;k++) {//列
                System.out.print("* ");
            }
            System.out.println();
        }
        
        
        
        //打印空心等腰三角形
        for (int i = 1; i <6 ; i++) {//行
            //空格
            for (int j = 0; j <(5-i) ; j++) {
                System.out.print(" ");
            }
            //分析:只是第2 3 4 行中间空格,1和5都是对的
            for (int k= 1; k <=i ;k++) {//列
                if (i==1||i==5){
                    System.out.print("* ");
                }else if (i>1&&i<5){
                    if (k==i||k==1){
                        System.out.print("* ");
                    }else {
                        System.out.print("  ");
                    }
                }
​
            }
            System.out.println();
        }
​
    }
}

二、数组---Arrray

1、定义

具有相同类型的数据集合

2、如何创建数组:

一维数组格式案例定义一个整型数组22,33,44
数组的每个元素都确定type[] arrName={值1,值2,值3......}int[] arr={22,33,44};
以对象的形式创建(元素确定)type[] arrName=new type[]{值1,值2,值3.....}tint[] arr=new int[]{22,33,44}
对存储的值不清楚,但是知个数)type[] arrName=new type[3]int[] arr=new int[3]

二维数组:一堆数组中的每个元素也是一个数组

二维数组格式案例
元素确定type[] [] arr={ { 值1-1,值1-2.... },{值2-1,值2-2.....}.....}int[] [] arr={ {1,2,3},{4,5,6},{7,8} };
以对象的形式创建(元素确定)type[] [] arr=new type[]{值1,值2};int[] [] arr1=new int[3] []; arr1[0]=new int[]{0};
对存储的值不清楚,但是知个数)type[] [] arr=new itype[3] []int arr1 = new int3; arr1[0] = new int[]{1,2}; arr1[1] = new int[6];

访问数组中的元素:数组的下标是从0开始的

数组名[下标]

例如: String[] names=new String[]{"aa","bb","cc"};

访问:

names[1]="bb";

如果访问超出了数组范围的元素,会抛出ArrayIndexOutOfBoundsException----数组下标异常

public class Demo3Array {
    public static void main(String[] args) {
​
        // String[] names={"aa","bb","cc"};
​
        // String[] names=new String[]{"aa","bb","cc"};
​
        String[] names=new String[3];
        names[0]="aa";
        names[1]="bb";
        names[2]="cc";
        System.out.println(names);//数组的地址
        System.out.println(names[0]);//aa
       // System.out.println(names[99]);//ArrayIndexOutOfBoundsException :99
    }
}

3、如何遍历数组?

在数组对象中有一个属性:arr.length,返回数组元素的个数

for循环:

       String[] names=new String[]{"aa","bb","cc"};
​
        for (int i = 0; i < names.length; i++) {
            String name = names[i];
            System.out.println(name);
        }

foreache循环:利用迭代器实现数组的遍历

结构:

for(类型 变量:序列){

//循环体

}

        String[] names=new String[]{"aa","bb","cc"};
         
         for (String name: names) {
            System.out.print(name);
        }
​
 
​
​

获取最后的元素:

String[] names=new String[]{"aa","bb","cc"};
System.out.println(names[names.length-1]);

4、数组的工具类

Arrays工具类中提供了多种操作数组的方法:

Arrays.toString(定义的数组名) //将数组转成字符串

5、数组的扩容

1) System.arraycoopy() --------将原数组全部复制到一个新的数组

全称: public static native void arraycopy(Object src,int srcPos,Object dest,int destPos, int length)

src:源数组;

srcPos:源数组要复制的起始位置;

dest:目的数组;

destPos:目的数组放置的起始位置;

length:复制的长度.

 //扩容
        String[] names=new String[]{"aa","bb","cc"};
        String[] newNames=new String[5];
​
        System.arraycopy(names,0,newNames,0,names.length);
        newNames[3]="dd";
        newNames[4]="ee";
​
        System.out.println(Arrays.toString(newNames));
​
        System.out.println("-----------------");
        
        //缩容:
        String[] names1=new String[]{"张三","李四","王五","小于"};
        String[] names2=new String[2];
        System.arraycopy(names1,0,names2,0,2);
        System.out.println(Arrays.toString(names2));

说明:

native:本地方法,功能不是由java代码实现。

static :静态成员,可以直接通过类进行访问

练习:利用冒泡排序将数组{12,4,6,2,1},按从小到大排序

import java.util.Arrays;
​
//利用冒泡排序将数组{12,4,6,2,1},按从小到大排序
public class Demo4exercise {
    public static void main(String[] args) {
        int[] arr={12,4,6,2,1};
​
        for (int j = 0; j <4 ; j++) {
            for (int i = 0; i < arr.length-1; i++) {
                if (arr[i]>arr[i+1]){
 //                        按位与 ^
//                    arr[i+1]=arr[i]^arr[i+1];
//                    arr[i]=arr[i]^arr[i+1];
//                    arr[i+1]=arr[i]^arr[i+1];
                    int index=arr[i];
                    arr[i]=arr[i+1];
                    arr[i+1]=index;
                }
            }
        }
​
        System.out.println(Arrays.toString(arr));
    }
}

练习:打印杨辉三角---使用二维数组

import java.util.Arrays;
import java.util.Scanner;
​
/*杨辉三角*/
public class Demo5exercise {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入打印多少行");
        int i = scanner.nextInt();
        triangle(i);
​
    }
    public static void triangle(int n){
​
        int[][] arr = new int[n][n];
        for(int i = 0; i < n; i++ ){
            for(int j = 0; j <= i; j++ ){
                if (j == 0 || j == i) {
                    arr[i][j] = 1;
                } else {
                    arr[i][j] = arr[i - 1][j] + arr[i - 1][j - 1];
​
                }System.out.print(arr[i][j] + "   ");
            } System.out.println();
        }
    }
    
}
​

标签:arr,Java,String,day03,int,names,数组,杨辉三角,new
From: https://blog.csdn.net/weixin_62189092/article/details/143184043

相关文章

  • Java-继承与多态-下篇
    ......
  • Java的继承概念
    在Java中,继承是一种重要的面向对象编程概念,它允许一个类(子类)继承另一个类(父类)的属性和方法。使用继承可以提高代码的复用性和可维护性。继承的基本语法使用extends关键字来声明一个类继承自另一个类。classParent{//父类的属性和方法}classChildextendsPar......
  • 【JAVA毕设】基于JAVA的酒店管理系统
    一、项目介绍 本系统前端框架采用了比较流行的渐进式JavaScript框架Vue.js。使用Vue-Router实现动态路由,Ajax实现前后端通信,Element-plus组件库使页面快速成型。后端部分:采用SpringBoot作为开发框架,同时集成MyBatis、Redis、阿里云oss对象存储等相关技术。酒店管理系统,可前......
  • Java强制类型转换:深入理解与实践
    在Java编程中,类型转换是一个常见的操作,它允许我们将一个数据类型的值转换为另一个数据类型的值。Java提供了两种类型转换:自动类型转换(隐式类型转换)和强制类型转换(显式类型转换)。在这篇文章中,我们将重点探讨强制类型转换,包括它的使用场景、语法、以及在实际编程中的应用。什么......
  • Java Springboot 接收前端上传图片,并返回路径让前端显示图片
    一、接收前端图片并保存并为前端返回一个图片路径. @RestController@RequestMapping("/upload")publicclassUploadImgController{@Autowired(required=false)privateResourceLoaderresourceLoader;@Value(value="/Users/user/Java/Upload/Serve......
  • uniapp图片上传功能前后端代码(java)
    注意点:1.接口名2.文件大小和类型限制3.后端服务器要启动4.如果前后端分离部署,确保后端支持跨域请求(CORS)前端代码:<template> <viewclass="main"> <image:src="imagesrc"@click="onclick"lazy-load=true style="top:470rpx;height:700rpx;width:700......
  • 行为设计模式 -观察者模式- JAVA
    责任链设计模式一.简介二.案例2.1抽象处理者(Handler)角色2.2具体处理者(ConcreteHandler)角色2.3测试三.结论3.1优缺点3.2示例3.3要点前言这是我在这个网站整理的笔记,有错误的地方请指出,关注我,接下来还会持续更新。作者:神的孩子都在歌唱一.简介......
  • Java 解析 XML 转换为 Json
    我们使用Java开发项目时偶尔会需要使用到Xml文件的解析,一般情况下都会使用DOM4j、SAX、JDOM等方案,但这些方案比较代码编写较为繁琐。我们经常使用的Json进行数据传输或存储,如果能够将Xml快速转换为Json,将会大大减轻我们后续开发和维护的工作量。本篇博客简单介绍使用......
  • springboot+vue展位设计模型库网站的java开发与设计
    目录系统实现截图详细技术介绍本课题软硬件环境核心代码部分展示其他springboot项目推荐详细视频演示源码获取系统实现截图详细技术介绍系统采用了基于SpringBoot、Vue和MySQL的三层结构体系。前端部分通过Vue框架构建用户界面,实现页面展示和交互功能,后端则利......
  • JAVA开源项目 基于Vue和SpringBoot购物商城网站
    本文项目编号T032,文末自助获取源码\color{red}{T032,文末自助获取源码}......