国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

【史上最強(qiáng)JavaSE筆記】之?dāng)?shù)組篇

2019-11-14 22:17:33
字體:
供稿:網(wǎng)友
【史上最強(qiáng)javaSE筆記】之?dāng)?shù)組篇

各位程序猿,各位攻城獅,各位蜥蜴鷗以及各位棕鯨鯉們~~大家好,我是潘師傅,歡迎大家收看由我為你們帶來的【史上最強(qiáng)JavaSE筆記】系列,其實(shí)也可以叫【嘻哈JavaSE筆記】的,第一次在博客園發(fā)帖,想想還真是有點(diǎn)小激動(dòng)呢,各位求支持呀,哈哈,那么回歸正題,我把自己之前學(xué)習(xí)積累的筆記拿出來跟大家分享一下,方便大家更好的理解和復(fù)習(xí),希望能夠?qū)Υ蠹矣兴鶐椭@次發(fā)的是JavaSE方面數(shù)組篇的,內(nèi)容不一定全面哦,歡迎大家前來留言交流哈,不足的地方還望大家多多指出和指導(dǎo)哈~(由于首次發(fā)文章,布局可能比較亂,不美觀,還望大家多多指導(dǎo))。

1.數(shù)組聲明:第一種:數(shù)據(jù)類型 變量名[],例如:int x[];第二種:數(shù)據(jù)類型[] 變量名=new 數(shù)據(jù)類型[要在內(nèi)存中開辟的空間數(shù)量,例如:int[] x=new int[3];第三種:數(shù)據(jù)類型[] 變量名=new 數(shù)據(jù)類型[]{元素1,元素2,元素3};例子1:
 1 public static void main(String[] arg){ 2  3        //定義一個(gè)字符串?dāng)?shù)組,將各個(gè)元素(也就是月餅)放入其中 4  5        String[]names={"五仁月餅","香辣牛肉月餅","金嗓子月餅","韭菜月餅"}; 6  7         8  9        //通過for循環(huán)遍歷一下數(shù)組,通過輸出語句判斷循環(huán)輸出10 11        //names.length是數(shù)組的長(zhǎng)度,names是輸出數(shù)組下標(biāo)為i的元素名稱12 13        for(int i = 0;i<names.length;i++){14 15            System.out.

輸出結(jié)果:我吃到第1個(gè)月餅是五仁月餅我吃到第2個(gè)月餅是香辣牛肉月餅我吃到第3個(gè)月餅是金嗓子月餅我吃到第4個(gè)月餅是韭菜月餅2.數(shù)組常見的異常(2種)1.空指針異常(NullPointerException)原因:數(shù)組沒有分配內(nèi)存空間
 1 public static void main(String[] args) { 2  3        //空指針異常 4  5        //錯(cuò)誤提示:NullPointerException 6  7        String[]names=null; 8  9        System.out.println(names[1]);10 11 }

輸出結(jié)果:Exception in thread "main" java.lang.NullPointerException ata2.NullPointerException(a2.java:10) ata2.main(a2.java:5)2.數(shù)組越界異常原因:下標(biāo)超出了數(shù)組長(zhǎng)度
 1 public static void main(String[] args) { 2  3        //數(shù)組越界異常 4  5        //ArrayIndexOutOfBoundsException 6  7        String[]names={"五仁月餅","香辣牛肉月餅","金嗓子月餅","韭菜月餅"}; 8  9        System.out.println(names[4]);10 11 }

輸出結(jié)果:Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException:4 ata3.main(a3.java:5)3.數(shù)組內(nèi)存結(jié)構(gòu)分析棧內(nèi)存和堆內(nèi)存的區(qū)別:數(shù)組內(nèi)存分為棧內(nèi)存和堆內(nèi)存。棧內(nèi)存中是用來存放變量名的,存放確定大小的,存的是一個(gè)內(nèi)存地址,通過它可以從堆內(nèi)存中找到其對(duì)應(yīng)的值,存取速度比堆內(nèi)存快,例如:names堆內(nèi)存中用來存放值的,存放不確定大小的,需要?jiǎng)討B(tài)代碼運(yùn)行到這一句才會(huì)確定大小,例如:"小明"4.多維數(shù)組習(xí)題:3個(gè)班級(jí)各4名學(xué)員參賽,計(jì)算每個(gè)班的平均成績(jī)
 1 public static void main(String[] args) { 2        //創(chuàng)建一個(gè)鍵盤輸入 3        Scannerinput = newScanner(System.in); 4        //定義一個(gè)scores二維數(shù)組,第一個(gè)存班級(jí)數(shù)量,第二個(gè)存學(xué)生數(shù)量 5        int scores[][]=new int[3][4]; 6        //遍歷,將輸入的成績(jī)存入到二維數(shù)組scores中 7        for (int i = 0; i < 3; i++) { 8            for (int j = 0; j < 4; j++) { 9               System.out.println("請(qǐng)輸入第"+(i+1)+"個(gè)班級(jí)的第"+(j+1)+"個(gè)同學(xué)的成績(jī):");10               scores[j]=input.nextInt();11            }12        }13       14        //輸出二位數(shù)組的每個(gè)元素15        for (int i = 0; i < 3; i++) {16            System.out.println("第"+(i+1)+"個(gè)班級(jí)的學(xué)員成績(jī):");17            int sum = 0;18            for (int j = 0; j < 4; j++) {19               System.out.println("第"+(j+1)+"個(gè)學(xué)員的成績(jī)是:"+scores[j]);20               sum+=scores[j];21            }22            System.out.println("第"+(i+1)+"個(gè)班級(jí)的平均分是:"+(sum/4));23        }24     }

輸出結(jié)果:請(qǐng)輸入第1個(gè)班級(jí)的第1個(gè)同學(xué)的成績(jī):61請(qǐng)輸入第1個(gè)班級(jí)的第2個(gè)同學(xué)的成績(jī):71請(qǐng)輸入第1個(gè)班級(jí)的第3個(gè)同學(xué)的成績(jī):85請(qǐng)輸入第1個(gè)班級(jí)的第4個(gè)同學(xué)的成績(jī):92請(qǐng)輸入第2個(gè)班級(jí)的第1個(gè)同學(xué)的成績(jī):64請(qǐng)輸入第2個(gè)班級(jí)的第2個(gè)同學(xué)的成績(jī):73請(qǐng)輸入第2個(gè)班級(jí)的第3個(gè)同學(xué)的成績(jī):95請(qǐng)輸入第2個(gè)班級(jí)的第4個(gè)同學(xué)的成績(jī):66請(qǐng)輸入第3個(gè)班級(jí)的第1個(gè)同學(xué)的成績(jī):35請(qǐng)輸入第3個(gè)班級(jí)的第2個(gè)同學(xué)的成績(jī):73請(qǐng)輸入第3個(gè)班級(jí)的第3個(gè)同學(xué)的成績(jī):83請(qǐng)輸入第3個(gè)班級(jí)的第4個(gè)同學(xué)的成績(jī):94第1個(gè)班級(jí)的學(xué)員成績(jī):第1個(gè)學(xué)員的成績(jī)是:61第2個(gè)學(xué)員的成績(jī)是:71第3個(gè)學(xué)員的成績(jī)是:85第4個(gè)學(xué)員的成績(jī)是:92第1個(gè)班級(jí)的平均分是:77第2個(gè)班級(jí)的學(xué)員成績(jī):第1個(gè)學(xué)員的成績(jī)是:64第2個(gè)學(xué)員的成績(jī)是:73第3個(gè)學(xué)員的成績(jī)是:95第4個(gè)學(xué)員的成績(jī)是:66第2個(gè)班級(jí)的平均分是:74第3個(gè)班級(jí)的學(xué)員成績(jī):第1個(gè)學(xué)員的成績(jī)是:35第2個(gè)學(xué)員的成績(jī)是:73第3個(gè)學(xué)員的成績(jī)是:83第4個(gè)學(xué)員的成績(jī)是:94第3個(gè)班級(jí)的平均分是:71優(yōu)化思考:成績(jī)?yōu)?-100分,如何在錄入成績(jī)的時(shí)候保證不錄入錯(cuò)誤呢?分析:寫入判斷,如果輸入的成績(jī)大于100或者小于0,那么就提示錯(cuò)誤,可以重新對(duì)該同學(xué)的成績(jī)進(jìn)行輸入。
 1 public static void main(String[] args) { 2        Scannerinput = newScanner(System.in); 3        int scores[][] = new int[3][4]; 4        for (int i = 0; i < 3; i++) { 5            for (int j = 0; j < 4; j++) { 6               System.out.println("請(qǐng)輸入第"+(i+1)+"個(gè)班級(jí)的第"+(j+1)+"個(gè)同學(xué)的成績(jī):"); 7               scores[j]= input.nextInt(); 8               if (scores[j] > 100|| scores[j] < 0) { 9                   10                   System.out.println("輸入成績(jī)無效,成績(jī)?yōu)?-100分,請(qǐng)重新輸入");11                   //方法1:通過j--將這次循環(huán)記錄刪除,這樣下次循環(huán)就會(huì)再循環(huán)到這個(gè)同學(xué)的成績(jī)輸入12                   j--;13                   //方法2:在沒有跳出循環(huán)的情況下再次輸入一次14                   //System.out.println("請(qǐng)輸入第"+(i+1)+"個(gè)班級(jí)的第"+(j+1)+"個(gè)同學(xué)的成績(jī):");15                   //scores[j] = input.nextInt();16               }17               18            }19        }20       21        for (int i = 0; i < 3; i++) {22            System.out.println("第"+(i+1)+"個(gè)班級(jí)同學(xué)成績(jī):");23            int sum = 0;24            for (int j = 0; j < 4; j++) {25               System.out.println("第"+(j+1)+"個(gè)同學(xué)的成績(jī)?yōu)椋?+scores[j]);26               sum+=scores[j];27            }28            System.out.println("第"+(i+1)+"個(gè)班級(jí)的平均成績(jī)?yōu)椋?+(sum/4));29            System.out.println("---------------------------------------------");30        }31     }

練習(xí)題:1.猜數(shù)
游戲:從鍵盤中任意輸入一個(gè)數(shù)據(jù),判斷數(shù)列中是否包含此數(shù)。
 1 public static void main(String[] args) { 2        int num[] ={3,5,7,83,23,64}; 3        boolean flag = false; 4        Scannerscan = newScanner(System.in); 5        System.out.println("猜數(shù)字游戲"); 6        System.out.println("請(qǐng)輸出一個(gè)數(shù)字:"); 7        int input = scan.nextInt(); 8        for (int i = 0; i < num.length; i++) { 9            if (num == input) {10               flag= true;11               break;12            }13        }14        if (flag) {15            System.out.println("恭喜您猜對(duì)了~");16        }else{17            System.out.println("很遺憾,您猜錯(cuò)了~");18        }19     }

2.使用字母打印正三角形. A BBB CCCCC DDDDDDD EEEEEEEEEFFFFFFFFFFFGGGGGGGGGGGGG
 1 public static void main(String[] args) { 2        char[] sj = {'A','B','C','D','E','F','G'}; 3        //打印的行數(shù) 4        for (int i = 0; i < sj.length; i++) { 5            //打印每行的空格數(shù)量 6            for (int j = i; j < sj.length - 1; j++) { 7               System.out.print(" "); 8            } 9            //打印每行的字母數(shù)量10            for (int j = 0; j <= i * 2;j++) {11               System.out.print(sj);12            }13            System.out.println();14        }15     }

3.求數(shù)組中的最大值最小值。
 1 public static void main(String[] args) { 2         int num[] = { 3, 29, 33, 6, 90, 24, 50 }; 3         int max = num[0]; 4         int min = num[0]; 5         for (int i = 0; i < num.length; i++) { 6             if (num[i] > max) { 7                 max = num[i]; 8             } 9             if (num[i] < min) {10                 min = num[i];11             }12         }13         System.out.println("數(shù)組中的最大值為:" + max);14         System.out.println("數(shù)組中的最小值為:" + min);15     }  

4.有一串?dāng)?shù)字:748,520,998,1001,250,512,502,使用冒泡排序分別對(duì)其進(jìn)行由小到大,由大到小的排列起來。
 1 public static void main(String[] args) { 2        int num[] ={748,520,998,1001,250,512,502}; 3        int temp; 4        for (int i = 0; i < num.length - 1; i++) { 5            for (int j = 0; j < num.length - 1 - i; j++) { 6               if (num[j] > num[j +1]) {//>是從小到大排,<是從大到小排 7                   temp= num[j]; 8                   num[j]= num[j + 1]; 9                   num[j+ 1] = temp;10               }            11            }         12        }13        System.out.println("積分榜排名為:");14        for (int i = 0; i < num.length; i++) {15            System.out.print(num + " ");16        }17     }

實(shí)戰(zhàn)應(yīng)用案例:雙色球彩票程序
  1 /**  2 * 應(yīng)用案例:模擬雙色球彩票程序  3 * 實(shí)現(xiàn)步驟:  4 * 1.系統(tǒng)生成一個(gè)籃球和6個(gè)紅球,并存儲(chǔ)起來  5 * 2.接受用戶選號(hào),1個(gè)籃球和6個(gè)紅球  6 * 3.驗(yàn)證系統(tǒng)號(hào)碼與用戶號(hào)碼是否匹配(是否中獎(jiǎng))  7 * 4.公布本期中獎(jiǎng)號(hào)碼  8 */  9 雙色球彩票規(guī)則: 10 一等獎(jiǎng):500萬,1個(gè)藍(lán)球,6個(gè)紅球 11 二等獎(jiǎng):一等獎(jiǎng)的30%,6個(gè)紅球 12 三等獎(jiǎng):3000元,1個(gè)藍(lán)球,5個(gè)紅球 13 四等獎(jiǎng): 200元,5個(gè)紅球或者1個(gè)藍(lán)球,4個(gè)紅球 14 五等獎(jiǎng):10元,4個(gè)紅球或者1個(gè)藍(lán)球,3個(gè)紅球 15 六等獎(jiǎng):5元,1個(gè)藍(lán)球 16 程序代碼如下: 17 public static void main(String[] args) { 18        int sysBlue;                //系統(tǒng)生成的1個(gè)藍(lán)球號(hào) 19        int[] sysRed = new int[6];      //系統(tǒng)生成的6個(gè)紅球號(hào) 20        int userBlue;               //用戶輸入的1個(gè)藍(lán)球號(hào) 21        int[] userRed = new int[6];     //用戶輸入的6個(gè)紅球號(hào) 22        23        int blueball = 0;           //正確的藍(lán)球個(gè)數(shù) 24        int redball = 0;            //正確的紅球個(gè)數(shù) 25        26        Randomr = newRandom();    //隨機(jī)函數(shù) 27        Scannerinput = newScanner(System.in);//鍵盤輸入 28        29        //紅球所有的33個(gè)號(hào) 30        int[] redNum ={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32}; 31        32        //系統(tǒng)隨機(jī)在1-16中生成藍(lán)球號(hào) 33        sysBlue= r.nextInt(16)+1; 34        35        //隨機(jī)生成的紅球號(hào)碼 36        for (int i = 0; i < sysRed.length; i++) { 37            while(true){ 38               int index = r.nextInt(33);      //隨機(jī)生成0-32的下標(biāo) 39               if (redNum[index] != 0) {       40                   sysRed= redNum[index]; 41                   redNum[index]= 0; 42                   break; 43               } 44            } 45        } 46        47        System.out.println("雙色球彩票選號(hào)開始啦~"); 48        System.out.println("請(qǐng)選擇籃球號(hào)碼(16選1):"); 49        userBlue= input.nextInt(); 50        System.out.println("請(qǐng)選擇紅球號(hào)碼(33選6):"); 51        for (int i = 0; i < userRed.length; i++) { 52            userRed= input.nextInt(); 53        } 54        55        //驗(yàn)證籃球和紅球的正確個(gè)數(shù) 56        //---------驗(yàn)證籃球 57        if (userBlue == sysBlue) { 58            blueball= 1; 59        } 60        61        //---------驗(yàn)證紅球 62        for (int i = 0; i < userRed.length; i++) { 63            for (int j = 0; j < sysRed.length; j++) { 64               if (userRed ==sysRed[j]) { 65                   redball++; 66                   break; 67               } 68            } 69        } 70        71        //判斷是否中獎(jiǎng) 72        if (blueball == 1&& redball == 6) { 73            System.out.println("恭喜你,中了一等獎(jiǎng)500萬!"); 74        }else if(redball == 6){ 75            System.out.println("恭喜你,中了二等獎(jiǎng)"); 76        }else if(blueball == 1&& redball == 5){ 77            System.out.println("恭喜你,中了三等獎(jiǎng),3000元"); 78        }else if(redball == 5 ||(blueball == 1 && redball == 4)){ 79            System.out.println("恭喜你,中了四等獎(jiǎng),200元"); 80        }else if(redball == 4 ||(blueball == 1 && redball == 3)){ 81            System.out.println("恭喜你,中了五等獎(jiǎng),10元"); 82        }else if(blueball == 1){ 83            System.out.println("恭喜你,中了六等獎(jiǎng),5元"); 84        }else{ 85            System.out.println("很遺憾,您沒有中獎(jiǎng)~~繼續(xù)加油~~╮(╯▽╰)╭"); 86        } 87        88        //公布本期中獎(jiǎng)號(hào)碼 89        int temp; 90        for (int i = 0; i < sysRed.length-1; i++) { 91            for (int j = 0; j < sysRed.length-1-i; j++) { 92               if (sysRed[j] >sysRed[j+1]) { 93                   temp= sysRed[j]; 94                   sysRed[j]= sysRed[j+1]; 95                   sysRed[j+1] = temp; 96               } 97            } 98        } 99       100        System.out.println("本期的中獎(jiǎng)號(hào)碼為:");101        System.out.println("紅球:");102        for (int i = 0; i < sysRed.length; i++) {103            System.out.println(sysRed+" ");104        }105        System.out.println();106        System.out.print("籃球:" + sysBlue);107 108     }109  


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 桦川县| 大庆市| 怀柔区| 义马市| 灵川县| 丹阳市| 吴堡县| 内江市| 临邑县| 江川县| 漠河县| 公主岭市| 武隆县| 若羌县| 宜良县| 德令哈市| 梅州市| 白城市| 旅游| 虞城县| 保康县| 招远市| 财经| 静海县| 彰化县| 长泰县| 正蓝旗| 黄冈市| 青岛市| 建始县| 江陵县| 会同县| 厦门市| 福清市| 成安县| 东平县| 个旧市| 万全县| 花莲县| 长顺县| 蒲城县|