實(shí)驗(yàn)?? Java 基本語(yǔ)法練習(xí)
一、實(shí)驗(yàn)?zāi)康?
????? 1. 了解 Java 的數(shù)據(jù)類型
? 2. 掌握各種變量的聲明方式。
? 3. 理解運(yùn)算符的優(yōu)先級(jí)。
? 4. 掌握 Java 基本數(shù)據(jù)類型、運(yùn)算符與表達(dá)式。
? 5. 理解 Java 程序語(yǔ)法結(jié)構(gòu),掌握順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)語(yǔ)法的程序設(shè)計(jì)方法。
? 6. 通過(guò)以上內(nèi)容,掌握 Java 語(yǔ)言的編程規(guī)則。
二、實(shí)驗(yàn)要求
? 1. 編寫一個(gè)聲明 Java 不同數(shù)據(jù)類型變量的程序。
? 2. 編寫一個(gè)使用運(yùn)算符、表達(dá)式、變量的程序。
? 3. 編寫一個(gè)使用 Java 數(shù)組的的程序。
? 4. 編寫表達(dá)式語(yǔ)句、復(fù)合語(yǔ)句的程序。
? 5. 編寫使用不同選擇結(jié)構(gòu)的程序。
? 6. 編寫使用不同循環(huán)結(jié)構(gòu)結(jié)構(gòu)的程序。
三、實(shí)驗(yàn)內(nèi)容
(一) 聲明不同數(shù)據(jù)類型的變量
?? 1.編寫聲明不同數(shù)據(jù)類型變量的程序文件 KY2_1.java,源代碼如下。
? public class KY2_1 {
??? public static void main(String args[]) {
????? byte b=0x55;
????? short s=0x55ff;
????? int i=1000000;
? long l=0xffffL;
????? char c='a';
????? float f=0.23F;
????? double d=0.7E-3;
????? boolean B=true;
????? String S="這是字符串類數(shù)據(jù)類型";
????? System.out.println("字節(jié)型變量 b = "+b);
????? System.out.println("短整型變量 s = "+s);
????? System.out.println(" 整型變量 i = "+i);
????? System.out.println("長(zhǎng)整型變量 l = "+l);
????? System.out.println("字符型變量 c = "+c);
????? System.out.println("浮點(diǎn)型變量 f = "+f);
????? System.out.println("雙精度變量 d = "+d);
????? System.out.println("布爾型變量 B = "+B);
????? System.out.println("字符串類對(duì)象 S = "+S);
??? }
? }
? 2. 編譯并運(yùn)行該程序
(二) 了解變量的使用范圍
? 1.建立 KY2_2.java 文件,通過(guò)本程序了解變量的使用范圍,源代碼如下。
???? public class KY2_2 {
???? static int i=10;
?????? public static void main(String args[]) {
??????????? {
??????????????? int k=10;
?????????????? System.out.println("i="+i);
????????????? System.out.println("k="+k);
???????????? }
????????? System.out.println("i="+i);
????????? System.out.println("k="+k);
????????? //編譯時(shí)將出錯(cuò),已出 k 的使用范圍
???????? }
?????? }
? 2.編譯 KY2_2.java
? 此時(shí)會(huì)出現(xiàn)錯(cuò)誤提示。因?yàn)樽兞?k 在方法塊中聲明,在方法塊之外它是不存在的, 所以編譯時(shí)會(huì)出錯(cuò)。
? 3.修改上面的程序。
? 4.成功運(yùn)行該程序。
? 思考:KY2_2.java 程序說(shuō)明了什么問(wèn)題?
(三) 使用關(guān)系運(yùn)算符和邏輯運(yùn)算符
??? 1.建立使用關(guān)系運(yùn)算符和邏輯運(yùn)算符的程序文件,源代碼如下。
????? class KY2_3 {
??????? public static void main(String args[]) {
????????? int a=25, b=20, e=3, f=0;
????????? boolean d=a????????? System.out.println("a=25,b=20,e=3,f=0");
????????? System.out.println("因?yàn)殛P(guān)系表達(dá)式 a????????? if (e!=0 && a/e>5)
???????????? System.out.println("因?yàn)?e 非 0 且 a/e 為 8 大于 5,所以輸出? a/e= "+a/e);
????????? if (f!=0 && a/f>5)
???????????? System.out.println("a/f = "+a/f);
????????? else
??????????? System.out.println("因?yàn)?f 值為 0,所以輸出 f = "+f);
??????? }
????? }
????? 2.編譯并運(yùn)行該程序,結(jié)果如圖 2.3 所示。
(四) 使用表達(dá)式語(yǔ)句與復(fù)合語(yǔ)句
? 1. 建立包含表達(dá)式語(yǔ)句程序,源代碼如下。
????? class KY2_4{
????????? public static void main(String[] args) {
????????????? int k, i=3, j=4;
?????????????? k=20*8/4+i+j*i;
?????????????? System.out.println("表達(dá)式(20*8/4+i+j*i)="+k);
????????? }
????? }
? 2. 建立包含復(fù)合語(yǔ)句程序,源代碼如下。
????? class KY2_5{
????????? public static void main(String args[]) {
????????? int k, i=3, j=4;
????????? k=i+j;
????????? System.out.println("在復(fù)合塊外的輸出 k="+k);
??????????? {
????????????? float f;
????????????? f=j+4.5F;
????????????? i++;
????????????? System.out.println("在復(fù)合塊內(nèi)的輸出 f="+f);
????????????? System.out.println("在復(fù)合塊內(nèi)的輸出 k="+k);
??????????? }
??????????? System.out.println("在復(fù)合塊外的輸出 i="+i);
????????? }
????? }
? 3. 編譯并運(yùn)行上述兩個(gè)源程序
? 4. 將變量 i 在塊內(nèi)定義會(huì)怎樣?改變其他變量的位置看看會(huì)發(fā)生什么變化。
? 思考:指出程序的復(fù)合結(jié)構(gòu)以及變量的使用范圍。
(五) 使用選擇語(yǔ)句
? 1.使用 if...else 語(yǔ)句
¨?程序功能:使用 if...else 語(yǔ)句構(gòu)造多分支,判斷某一年是否為閏年。閏年的條件是符合下面二者之一:能被 4 整除,但不能被 100 整除;能被 4 整除,又能被 100 整除。
¨?編寫源程序文件,代碼如下。
??? public class KY2_6 {
??????? public static void main(String args[]) {
????????? boolean leap;
????????? int year=2005;
????????? if ((year%4==0 && year%100!=0) || (year%400==0)) // 方法 1
???????????? System.out.println(year+" 年是閏年");
????????? else
????????? System.out.println(year+" 年不是閏年");
????????? year=2008; // 方法 2
????????? if (year%4!=0)
???????????? leap=false;
????????? else if (year%100!=0)
???????????? leap=true;
????????? else if (year%400!=0)
???????????? leap=false;
????????? else
???????????? leap=true;
????????? if (leap==true)
???????????? System.out.println(year+" 年是閏年");
????????? else
???????????? System.out.println(year+" 年不是閏年");
????????? year=2050; // 方法 3
????????? if (year%4==0) {
???????????? if (year%100==0) {
?????????????? if (year%400==0)
???????????????? leap=true;
?????????????? else
???????????????? leap=false;
????????????? }
????????? else
???????????? leap=false;
?????? }
??? else
?????? leap=false;
??? if (leap==true)
?????? System.out.println(year+" 年是閏年");
??? else
?????? System.out.println(year+" 年不是閏年");
?? }
? }
¨?編譯運(yùn)行程序
思考:本程序中有幾個(gè)選擇語(yǔ)句,哪些具有嵌套關(guān)系?
2.使用 switch 語(yǔ)句
¨?程序功能:在不同溫度時(shí)顯示不同的解釋說(shuō)明。
¨?程序源代碼如下。
?? class KY2_7{
???????? public static void main(String args[]) {
???????? int c=38;
???? switch (c<10?1:c<25?2:c<35?3:4) {
????????? case 1:
???????????? System.out.println(" "+c+"℃ 有點(diǎn)冷。要多穿衣服。");
????????? case 2:
???????????? System.out.println(" "+c+"℃ 正合適。出去玩吧。");
????????? case 3:
???????????? System.out.println(" "+c+"℃ 有點(diǎn)熱。");
????????? default:
??????????? System.out.println(" "+c+"℃ 太熱了!開(kāi)空調(diào)。");
??????? }
????? }
?? }
¨?編譯運(yùn)行程序
(六) 使用循環(huán)語(yǔ)句
? 1. for 循環(huán)語(yǔ)句練習(xí)
¨?程序功能:按 5 度的增量打印出一個(gè)從攝氏溫度到華氏溫度的轉(zhuǎn)換表。
¨?程序源代碼如下。
??????? class KY2_8{
??????????? public static void main (String args[]) {
????????????? int h,c;
????????????? System.out.println("攝氏溫度 華氏溫度");
????????????? for (c=0; c<=40; c+=5) {
??????????????? h=c*9/5+32;
??????????????? System.out.println(" "+c+"????????? "+h);
????????????? }
??????????? }
??????? }
¨?編譯并運(yùn)行程序,其結(jié)果如圖 2.9 所示。
? 2. while 循環(huán)語(yǔ)句練習(xí)
¨?程序功能:運(yùn)行程序后從鍵盤輸入數(shù)字 1/2/3 后,可顯示抽獎(jiǎng)得到的獎(jiǎng)品;如果輸入其它數(shù)
¨?字或字符顯示“沒(méi)有獎(jiǎng)品給你!”。
¨?程序源代碼如下。
????? import java.io.*;
????? class KY2_9 {
????????? public static void main(String args[]) throws IOException {
??????????? char ch;
?????? System.out.println("按 1/2/3 數(shù)字鍵可得大獎(jiǎng)!");
?????? System.out.println("按空格鍵后回車可退出循環(huán)操作.");
?????? while ((ch=(char)System.in.read())!=' ')
?{
???????? System.in.skip(2);???? // 跳過(guò)回車鍵
???????? switch (ch) {
?????????? case '1':
???????????? System.out.println("恭喜你得大獎(jiǎng),一輛汽車!");
???????????? break;
?????????? case '2':
???????????? System.out.println("不錯(cuò)呀,你得到一臺(tái)筆記本電腦!");
???????????? break;
?????????? case '3':
???????????? System.out.println("沒(méi)有白來(lái),你得到一臺(tái)冰箱!");
???????????? break;
?????????? default:
???????????? System.out.println("真不幸,你沒(méi)有獎(jiǎng)品!下次再來(lái)吧。");
???????? }
?????? }
???? }
?? }
¨?編譯源程序。
¨?在命令提示符窗口運(yùn)行程序,然后分別按 1、2、3、r ,記錄結(jié)果。
? 3.do…while 循環(huán)語(yǔ)句練習(xí)
¨?程序功能:求 1+2+…+100 之和,并將求和表達(dá)式與所求的和顯示出來(lái)。
¨?程序源代碼如下。
?????????? class KY2_10 {
???????????? public static void main(String args[]) {
??????????????? int n=1, sum=0;
??????????????? do {
???????????????????????? sum+=n++;
???????????????? }
??????????????? while (n<=100);
??????????????? System.out.println("1+2+...+100 ="+sum);
????????????? }
?????????? }
¨?編譯并運(yùn)行程序
? 4.多重循環(huán)練習(xí)
¨?輸出九九乘法表的程序,源代碼如下。
???? public class KY2_11
???? {
????? public static void main(String args[])
???????? {
????????? int i,j,n=9;
????????? System.out.print("??? *??? |");
????????? for (i=1;i<=n;i++)
????????????? System.out.print("??? "+i);
????????????? System.out.print("\n-------|");
???????? for (i=1;i<=n;i++)
????????????? System.out.print("----");
????????????? System.out.println();
?????? for (i=1;i<=n;i++)
?????? {
?????????? System.out.print("???? "+i+"??? |");
?????????? for (j=1;j<=i;j++)
???????????? System.out.print(" "+i*j);
?????????? System.out.println();
?????? }
?? }
}
¨?編譯并運(yùn)行程序
評(píng)論
查看更多