zoukankan      html  css  js  c++  java
  • Java 数组+循环升级篇

    数组是一个变量,存储相同数据类型的一组数据(就是能存储很多数值的数据类型)

    如果说声明一个变量就是在内存空间划出一块合适的空间,那么声明一个数组就是在内存空间划出一串连续的空间。

     

    数组的基本要求

    • 标识符:数组的名称,用于区分不同的数组
    • 数组元素:数组中存放的数据
    • 元素下标:从0开始
    • 元素类型:数组的数据类型

    数组操作的基本步骤

      1)声明数组:告诉计算机数据类型是什么

      数据类型[ ]  数组名;   如:int[ ] score1;

      数据类型 数组名[ ];    如:int  score2[ ];

      注意:声明数组时不能声明数组的长度

      2) 分配空间:告诉计算机分配几个连续的空间

       如:score=new  int[30];

        数据类型[ ]  数组名 = new  数据类型[大小];

      3)赋值

      边声明变赋值

            Int [ ]  score=new int[ ]{89,79,69};  前面写个3后面附3个数值,冲突了,计算机不允许

            Int[ ]   score={89,69,79}

      也可以使用控制台输入赋值

    Scanner  input =new Scanner(System.in);
      for(int  i=0; i<30; i++){
        score[i]=input.nextInt();
    }

     常见应用:

    /*
    * 定义一个数组序列
    * 循环输出数列的值
    * 求数列中所有数值的和
    * 猜数游戏:从键盘中任意输入一个数据,判断数列中是否包含此数
    */
    public class Test01 {
        public static void main (String args[]){
            int[]  arr;
            arr=new int[]{8,4,2,1,23,34,12};
            int sum=0;
            for(int i=0;i<arr.length;i++){
                System.out.println(arr[i]);            
                sum=sum+arr[i];            
            }
            System.out.println("该数组数列的总和为:"+sum);
            
            Scanner input=new Scanner(System.in);
            System.out.println("请输入一个数字:");
            
            int j=input.nextInt();
            int k=0;
            for(int i=0;i<arr.length;i++){
                if(j==arr[i]){
                    k=1;
                    break;
                }
            }
            if(k==1){
                System.out.println("包含");
            }else {
                System.out.println("不包含");
            }
        }
    }
    /* 类说明
    * 录入5位学员的成绩,进行升序后输出
    */
    public class Test02 {
    
        public static void main(String[] args) {
            
            int [] score=new int[5];
            int k=0;
            Scanner  inputScanner=new Scanner(System.in);
            System.out.println("请输入成绩:");
            //for循环将数值存入数组
                for(int i=0;i<score.length;i++){
                    score[i]=inputScanner.nextInt();            
                    }
            //for循环输出数组序列
                System.out.println("排序之前:");
                for(int j=0;j<score.length;j++){
                    System.out.print(score[j]+" ");    
                }
                System.out.println(" ");
            //进行排序操作
                //使用java.util.Arrays类,调用Arrays类的sort()方法:对数组进行升序 Arrays.sort(数组名)
                Arrays.sort(score);
                System.out.println("排序之后:");
                for(int i=0;i<score.length;i++){
                    System.out.print(score[i]+" ");
                }
            }
        }

     若要输出数组的最大值,利用以上排序后,增加一句:System.out.println("最大值:"+score[score.length-1]);

    冒泡排序:重复地走访过要排序的数列,一次比较相邻两个元素,如果他们的顺序错误就把他们交换过来

    public class Test06 {
        public static void main(String[] args){
            int arr[]=new int[]{5,9,1,6,8};
            int k=0;
            for (int i = 0; i < arr.length-1; i++) {   //使用双循环
                for (int j = 0; j <arr.length-i-1; j++) {
                    if(arr[j]<arr[j+1]){    //此案例中为降序排列,若要为升序,则修改arr[j]>arr[j+1]
                        k=arr[j];
                        arr[j]=arr[j+1];
                        arr[j+1]=k;
                    }
                }
            }
            for (int i = 0; i < arr.length; i++) {
                System.out.print(arr[i]+" ");
            }        
        }
    }

     嵌套循环

    一个外循环里面嵌套内循环,外循环执行一次,内循环遍历一遍

    public class Test04 {
        public static void main(String[] args) {
            /*
             * 外层控制行数
             * 内层控制星号的个数
             */
            for (int i = 1; i <=5; i++) {
                for(int j=1;j<=i;j++){
                    System.out.print("*");
                }
                System.out.println();
            }
        }
    }
    如:打印直角三角形

     

    public class Test04 {
        public static void main(String[] args) {
            /*
             * 外层控制行数
             * 内层控制星号的个数
             */
            for (int i = 5; i >=1; i--) {
                for(int j=1;j<=i;j++){
                    System.out.print("*");
                }
                System.out.println();
            }
        }
    }
    public class Test04 {
        public static void main(String[] args) {
            
            for (int i =1; i <=5; i++) {
                for(int j=5; j>=i; j--){
                    System.out.print(" ");
                }
                for(int j=1;j<=i*2-1;j++){
                    System.out.print("*");
                }
                System.out.println();
            }
        }
    }

     打印九九乘法表

    public class Test05 {
    
        public static void main(String[] args) {
            for (int i = 1; i <=9; i++) {
                for (int j = 1; j <=i; j++) {
                    System.out.print(j+"x"+i+"="+(i*j)+"	");
                }
                System.out.println();
            }        
        }
    }

    public class Test012 {
    	public static void main (String args[]){
    		/* 已知数列:0,1,1,2,3,5,8,13,21...  循环输出该数列---斐波那契数列
    		*分析思路:前两个数值固定,第三个数值等于它前两个数值之和,第四个数值等于它前两个数值之和...
    		*
    		**/
    		int[] nums=new int[15];
    		nums[0]=0;
    		nums[1]=1;
    		
    		for(int i=2;i<nums.length;i++){
    			nums[i]=nums[i-1]+nums[i-2];
    		}		
    		//输出数组从新写一个for循环
    		for(int i=0;i<nums.length;i++){
    			System.out.print(nums[i]+",");
    		}
    		//数组平均值
    		int sum =0;
    		double avg=0.00;
    		for (int i = 0; i < nums.length; i++) {
    			sum=sum+nums[i];
    		}
    		avg=sum/15;
    		System.out.println("平均值:"+avg);
    	}
    }
    
  • 相关阅读:
    webstorm编辑器使用
    css深入理解z-index
    vue-cli安装失败问题
    html5 离线存储
    ESXI安装
    文档相似性匹配
    Hibernate基础
    云存储技术
    Signs of a poorly written jQuery plugin 翻译 (Jquery插件开发注意事项,Jquey官方推荐)
    Jquery类级别与对象级别插件开发
  • 原文地址:https://www.cnblogs.com/wysk/p/7657295.html
Copyright © 2011-2022 走看看