posts - 1,  comments - 0,  trackbacks - 0
           

          之前我們都是針對一個數據類型的數據的運算

          如果在問題中,出現大量的相同類型的數據,那么,就要考慮大量數據的運算(也是采用算術,關系,邏輯運算符)

          也要考慮大量數據的保存 (采用數組)

          一:數組 ***

           1:什么是數組

          由一組相同數據類型的數據的組合

           2:數組的定義的語法是什么呢

                 聲明數組的語法//聲明數組的意思 就是告訴計算機內存,要保留一段某數據類型的空間大小,這時候沒有數據存入

                 數據類型 標識符[ ]; //標識符 就是數組名,也要符合變量的命名規范

           int    int_array[]; 

           String []str; //[] 中括號可以放在標識符的前面,也可以在后面

           利用new 來為數組型變量分配內存空間

          array_int=new int[10]; //就是說真正在內存中分配10個大小的int類型的空間,數據全部默認為0

          str=new String[10];//在內存中分配10個大小的字符串類型的空間,數據全部為null

           聲明數組分配空間完全可以寫成一個,叫數組定義

                 int a[]=new int[10]; // 10 大小必須是整型,并且必須寫

                 //在內存中分配了10int類型的空間,每個空間都默認為0 第一個空間的地址為a

           例子:

                 //這個例子要大家學會怎么定義數組,怎么輸出數組的數據

                 int a[]=newint[10];

                 //String a[]=new String[10];

                

                 //輸出數組中的數據的值 int類型默認的數據為0

                 for(int i=0;i<a.length;i++){//i<10 可以寫成i<a.length

                     System.out.print(a[i]);//怎么得到數據 a[i] i不能超過數組的長度0開始

                 }

                 System.out.println();

                 int b1=10;

                 int a1[]=newint[b1];

                 //輸出數組中的數據的值

                 for(int i=0;i<10;i++){

                     System.out.print(a[i]);

                 }

          3:數組的初始化(也就是說怎么給數組賦值)

             a:在定義的時候可以賦值

                  //數組在定義的時候,可以賦值--叫數組的初始化

                 //注意:數組的大小(長度)不要寫,由賦值的數據的多少決定長度

                 int a[]=newint[]{1,2,3,4,5,6};

                 for(int i=0;i<a.length;i++){

                     System.out.print(a[i]);

                 }

             b:通過循環可以給數組賦值

                    

                 int a[]=newint[6];

                 //通過循環賦值給數組a

                 for(int i=0;i<a.length;i++){

                     a[i]=i;

                 }

                 for(int i=0;i<a.length;i++){

                     System.out.print(a[i]);

                 }

             

             一維數組的例子:從鍵盤輸入5個整數,求這5個數的最大值

              //從鍵盤輸入5個整數,求這5個數的最大值

                 Scanner s=new Scanner(System.in);

                 System.out.println("請從鍵盤輸入5個整數:");

                 int a[]=newint[5];

                 //給數組a賦值

                 for(int i=0;i<a.length;i++){

                     a[i]=s.nextInt();//從鍵盤輸入的時候,要回車

                 }

                 System.out.println();

                 //輸出數組a的數據

                 for (int i = 0; i < a.length; i++) {

                     System.out.print(a[i]+" ");

                 }

                

                 //求最大值

                 int max=a[0];//max的值為a[0]

                 for (int i = 1; i < a.length; i++) {

                     if(a[i]>max){

                        max=a[i];

                     }

                 }

                 System.out.println("最大值="+max);

            例子2:從鍵盤輸入5個整數,請按照升序排列輸出

                 //從鍵盤輸入5個整數,請按照升序排列輸出

                 Scanner s=new Scanner(System.in);

                 System.out.println("請從鍵盤輸入5個整數:");

                 int a[]=newint[5];

                 //給數組a賦值

                 for(int i=0;i<a.length;i++){

                     a[i]=s.nextInt();//從鍵盤輸入的時候,要回車

                 }

                 System.out.println();

                

                 //冒泡排序的規律:記住并且理解的

                 //第一個循環的 i<數組的長度-1

                 //第二個循環的 j<數組的長度-i-1

                 for (int i = 0; i < a.length-1; i++) {

                     for (int j = 0; j < a.length-i-1; j++) {

                        if(a[j]>a[j+1]){

                            //交換數據

                             int temp=a[j];

                             a[j]=a[j+1];

                             a[j+1]=temp;

                        }

                     }

                 }

                

                

                 for (int i = 0; i < a.length; i++) {

                     System.out.print(a[i]+" ");

                 }

          4:二維數組的定義

              如果有行與列的數據,那么采用2維數組,

             2[]符號

           二維數組的語法(標準定義)

              數據類型標識符[][]=new 數據類型[行的大小][列的大小];

              int a[][]=new int[3][3];//也就是定義33列的數據,00列開始

          int a[][]=newint[][]{{1,2,3},{4,5,6}};////可以初始化賦值

                 //也可以循環賦值

                 //輸出

                 for (int i = 0; i < a.length; i++) {//a.length 就是求出的行數

                     for (int j = 0; j < 3; j++) {

                        System.out.print(a[i][j]+" ");

                     }

                     System.out.println();

                 }

             例子:定義一個33列的數據,求對角線數據的和

              int a[][]=newint[][]{{1,2,3},{4,5,6},{7,8,9}};

                

                 int sum=0;

                 for (int i = 0; i < a.length; i++) {

                     for (int j = 0; j < 3; j++) {

                         if(i==j){

                            sum=sum+a[i][j];

                         }

                     }

                    

                 }

                 System.out.println("sum="+sum);

                

                 sum=0;

                 for (int i = 0; i < a.length; i++) {

                     for (int j = 0; j<3; j++) {

                         if((i+j)==2){

                            sum=sum+a[i][j];

                         }

                     }

                    

                 }

                 System.out.println("sum="+sum);

                 System.out.println(a[3][3]);

          sum=15

          sum=15

          Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3

              at test.Test.main(Test.java:32)

          錯誤的原因是執行System.out.println(a[3][3]);這行時候出錯

          ArrayIndexOutOfBoundsException 數組索引超過范圍

          posted on 2010-06-04 15:10 gjy 閱讀(126) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 嵊泗县| 自贡市| 浙江省| 滦南县| 读书| 增城市| 昭苏县| 宜昌市| 南江县| 和田县| 兴隆县| 将乐县| 开化县| 姜堰市| 灌南县| 砀山县| 台山市| 沅江市| 富顺县| 荔波县| 衡山县| 商水县| 林西县| 酒泉市| 翁源县| 侯马市| 习水县| 会昌县| 绥化市| 东乡族自治县| 临漳县| 鄂州市| 贺兰县| 上饶县| 宜宾县| 贡山| 朝阳市| 岑溪市| 甘泉县| 武定县| 江津市|