你的位置:首页 > Java教程

[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 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)+"\t");   }   System.out.println();  }   }}