精品午夜福利中文字av_国产成人综合网_av毛片免费观看网站_欧美影视国产综合_野花香视频中文免费观看_亚洲无码要在线视频_又粗又大又用力大交换好大好爽小静_欧美贵妇v办公室高跟鞋_亚洲国产高清a∨网站_免费中文少妇亚洲

知ing

Java語言程序設計(第三版)

邵麗萍,邵光亞,張后揚 編 / 清華大學出版社

拼命菇涼@ 上傳

查看本書

3.1  Java程序結構
3.1.1  Java程序構成
  見P38 例3.1
  說明:
 ?。?)Java源程序一般包括Java包引入(如果有的話)和類定義兩部分;
 ?。?)Java程序必須包含一個可被外界所直接調用的類,即主類;
  (3)一個Java程序可以定義多個類,但只能有一個主類,Java Applet程序的主類是繼承自Applet的子類;Java Application程序的主類是包含main方法的類,應用程序從main方法開始執(zhí)行;
 ?。?)類定義由類聲明語句和類體組成;
 ?。?)類聲明語句用來說明類的名稱、訪問權限及類的屬性;
  (6)類體也由兩部分組成:成員變量和成員方法;
 ?。?)成員變量為類中定義的變量(又稱屬性、域),用來說明類的狀態(tài)和特性。定義成員變量需要聲明成員變量的名稱、類型。
 ?。?)成員方法為類中定義的方法,用來實現(xiàn)類的功能和行為,是完成任務的關鍵。Java Application程序中一定要有main()主方法。而Java Applet程序一般要有init( )初始化方法或paint(Graphics g)畫圖方法;
 ?。?)類體中除了成員變量和成員方法說明語句外沒有其他語句,Java規(guī)定所有操作性語句必須放在成員方法中;
 ?。?0)Java方法類似于其他語言中的函數(shù),可以調用,可以有返回值。成員方法可以繼承父類的方法,也可以自定義成員方法。方法中也可以定義局部變量。
3.1.2  Java語句
  語句以分號“;”作為結束標志
  Java語句分為說明性語句和操作性語句。
  說明性語句用來說明包和類的引入、類的聲明、變量的聲明
  如:import java.applet.Applet ;
  操作性語句有表達式語句、復合語句、選擇語句和循環(huán)語句等
  1.表達式語句
    int  k, i=3 , j=4;
    k=i*j;
  2.復合語句
  復合語句也稱為塊(block)語句,是包含在一對大括號“{ }”中的任意語句序列。從語法上講,一個復合語句被視為一個簡單語句。
3.2  選擇語句
3.2.1  if語句
  格式: if (條件表達式)
       語句
  功能:條件表達式為true就執(zhí)行語句
  例:  int i=70;  char c='A';
     if(i>=c)  System.out.println("A小");
     System.out.println("結束");
3.2.2  if……else語句
  格式: if (條件表達式)
       語句1
      else
       語句2
  功能:條件表達式為true就執(zhí)行語句1,為false執(zhí)行語句2
  例:if('A'>'a')
     System.out.println("A比a大") ;
    else
      System.out.println("A比a小") ; // A65,a97,所以輸出A比a小
    System.out.println("結束");  
3.2.2  if……else 復合結構
   格式: if(條件表達式1)   語句1
         else  if   (條件表達式2)   語句2
               …………
         else  if   (條件表達式n)   語句n
           else  語句  n+1
   功能:如果某個條件表達式的值為true,就執(zhí)行它后面的語句,其余部分被忽略,若條件表達式都為假,執(zhí)行else后語句。
例:public class SC{
   public static void 輸入分數(shù)(int a){
      char 級別;
      if (a>=90)  級別='優(yōu)';
      else if (a>=80)  級別='良';
      else if (a>=60)  級別='中';
      else   級別='差';
      System.out.println("考試等級為 "+級別);  }

   public static void main(String arg[]) throws Exception{
     if(arg.length==0) System.out.println("您沒有輸入任何參數(shù)") ;
     else if(arg.length==1)
       輸入分數(shù)(Integer.parseInt(arg[0])); //arg[0]強制轉換成int型
     else {System.out.println("您輸入的參數(shù)太多了") ;
          System.out.println("命令行參數(shù)個數(shù)為"+arg.length) ; }
   } }
執(zhí)行:java SC 75     // 輸出:考試等級為 中
   java SC       // 輸出:您沒有輸入任何參數(shù)
   java SC 75 86  // 輸出:您輸入的參數(shù)太多了
         //       命令行參數(shù)個數(shù)為2
3.2.4  switch開關語句
  格式:switch  (表達式) {
      case  常量1:[語句塊1;] [break;]
        …………
      case  常量n : [語句塊n;] [break;]
      [default: 語句塊n+1;]
     }
功能:先計算switch表達式,再與每個case常量表達式值相比較,若相同,則執(zhí)行相應語句被執(zhí)行。若都不同,則執(zhí)行default語句n+1(若有的話)
  說明:
  1.switch后表達式必須是整型,字符型;
  2.每個case的常量必須不同;
  3.若沒有break,程序將繼續(xù)執(zhí)行下一個case語句;
  4.default位置可任意,但要注意break
  例:int a=80,b=9;
    char oper='/';
    switch(oper) {
     case '+' : System.out.println(a+"+"+b+"="+(a+b)); break;
      case '-' : System.out.println(a+"-"+b+"="+(a-b)); break;
      case '*' : System.out.println(a+"*"+b+"="+(a*b)); break;
      case '/' : System.out.println(a+"/"+b+"="+(a/b)); break;
      default  : System.out.println("操作符錯誤");
  結果:80/9=8    //因為是整型數(shù)相除
  思考:
 ?。?)沒有break的情況(將會執(zhí)行“/”,“*”,“default”行);
 ?。?)若操作數(shù)都不符,default改變位置,能否執(zhí)行?(能),但后面要加“break”
   例:   public class SC{
         public static void main(String a[])
       {   int i=0,j=5;
          switch(i) {
            case 0: switch(j){
                    case 1: System.out.print("A"); break;
                    case 2: System.out.print("B"); break;
                   default:System.out.print("C") ;  break; }
            case 1: switch(j){
                    case 4: System.out.print("X"); break;
                    case 5: System.out.print("Y"); break;  }
            default: System.out.print("Z"); break;   }}}
   運行結果: CYZ
  
3.3  循環(huán)語句
3.3.1  for循環(huán)語句(與C、C++相同)
  格式: for(賦初值;判斷條件;循環(huán)控制變量增減方式)
      {   語句塊  }
  功能:(1)第一次進入for循環(huán)時,對循環(huán)控制變量賦初值;
 ?。?)根據判斷條件檢查是否要繼續(xù)執(zhí)行循環(huán)。為真執(zhí)行循環(huán)體內語句塊,為假則結束循環(huán);
 ?。?)執(zhí)行完循環(huán)體內語句后,系統(tǒng)根據“循環(huán)控制變量增減方式”改變控制變量值,再回到步驟(2)根據判斷條件檢查是否要繼續(xù)執(zhí)行循環(huán)。
  例:public class SC {
     public static void main(String args[])   {
         int j=0 ;
         for(int i=0 ; i<=5 ; i++)    {
             j+=i ;
             System.out.println("j="+j) ;  }
      }  }
   運行結果:j=0
        j=1
        j=3
        j=6
        j=10
        j=15
3.3.2  while循環(huán)語句
  格式:while (條件表達式)
       循環(huán)語句塊
  功能:先計算條件表達式,為true,則執(zhí)行循環(huán)語句塊,為false則跳出循環(huán)。
  例:public class SC{
     public static void main(String args[])  {
          char c='a' ;
          while(c<='e')    {
              System.out.print(c+" ") ;
              c=(char)(c+1) ;   }
       } }
    運行結果:a  b  c  d  e
3.3.3  do…while循環(huán)語句
  格式: do  { 循環(huán)體 }
      while(條件表達式) ;
  注意:while后面的“;”
3.3.4  循環(huán)語句的嵌套
例:public class SC {
   public static void main(String args[])
    { int  i , j ;
      for (i=1;i<=9;i++)
        { for (j=1;j<=9;j++)
            System.out.print(i+"*"+j+"="+(i*j)+"\t");
           System.out.println();}
   }  }  
運行結果:1*1=1  1*2=2…………1*9=9
     2*1=2  2*2=4…………2*9=18
     ……………………
     9*1=9  9*2=18…………9*9=81
3.3.5 循環(huán)語句小結
 ?。?)初始化部分:用來設置循環(huán)的一些初始條件,計數(shù)器清零等;
 ?。?)循環(huán)體部分:這是反復被執(zhí)行的一段代碼,可以是單語句,也可以是復合語句;
 ?。?)迭代部分:這是當前循環(huán)結束,下一次循環(huán)開始時執(zhí)行的語句,常用來使計數(shù)器加1或減1;
 ?。?)終止部分:是一具布爾表達式,每一次循環(huán)要對該表達式求值,以驗證是否滿足循環(huán)終止條件。
3.4  跳轉語句
  Java支持3種跳轉語句:break , continue , return
3.4.1  break語句
  格式:break ;
  功能:(1)退出switch結構;
    ?。?)退出當前一層循環(huán)。
  例:見P51
3.4.2  帶標號的break語句
  格式:標識符:   //標識符應在break前面
     ……
     break 標識符 ;
  功能:直接跳轉到標識符處,可以退出多重循環(huán);
  例:public class SC{
    public static void main(String args[])   {
         int i,j,k=0;
   ABC:   for(i=0,j=0;i<10 && j<20;i++,j+=5) {
             for(;k<10;)   {
                k = k + 1;
               break ABC;      }
           System.out.println("i = " + i + "  j = " + j);     }
         System.out.println("Exit for loop==> i = " + i);
         System.out.println("Exit for loop==> j = " + j);
         System.out.println("Exit for loop==> k = " + k);
      } }
  運行結果:Exit for loop==> i =0
       Exit for loop==> j =0
       Exit for loop==> k =1
若去除“break ABC;”語句運行結果:
       i=0  j=0
       i=1  j=5
       i=2  j=10
       i=3  j=15
       Exit for loop==> i =4
       Exit for loop==> j =20
       Exit for loop==> k =10
  
  例:  int  i=3  j;
        outer: while(i>0) {
        j=3;
     iner: while(j>0) {
        if(j<2)  break  outer;
        System.out.println(j+”and”+i);
        j--;
     }  i-- ; }
3.4.3  continue語句 
  格式:continue ;
  功能:只有用在循環(huán)結構中,跳過循環(huán)體中尚未執(zhí)行的語句,重新開始下一輪循環(huán)。從循環(huán)體第一個語句開始執(zhí)行。
  例:public class SC {
     public static void main(String args[])   {
     int m=0 ;
       do {   m++ ;
      if(m/3==0) continue ;  //去除此行語句則輸出5個“您好!”
      System.out.println("您好!") ;   }
     while(m<5) ;   }  }
運行結果:輸出3個“您好!”
3.4.4  帶標號的continue語句 
  格式:標識符:
     ……
     continue  標識符;
  功能:用標號標出想跳到的語句,繼續(xù)重復執(zhí)行程序。
  說明:“break  標識符;”是結束循環(huán);“continue  標識符;”是繼續(xù)循環(huán)。
  例:P53
3.4.5  return語句 
  格式:return [表達式] ;
  功能:返回調用的語句,執(zhí)行它的下一條語句,可以帶參數(shù)返回。
  說明:當方法用void聲明時,說明不需要返回值(即返回類型為空),使用不帶參數(shù)return語句。不帶參數(shù)return語句可以省略。
  例:public class SC  {
       public static int Mul( )
         { int  m=1;
          for (int i=1 ; i<=5; i++)
            m=m*i;
          return  m; }
       public static void main(String args[])
         { System.out.println("5!="+ Mul( ));   }  }
運行結果:5!=120

作業(yè):P56 3-3
方法一:public class SC{
    public static void main(String arg[]){
     char c='A';
     while(c<='E') {
     switch(c)
{case 'A': System.out.println("A 等級的分數(shù)段是90分以上");break;
case 'B': System.out.println("B 等級的分數(shù)段是80~90分以上");break;
case 'C': System.out.println("C 等級的分數(shù)段是70~80分以上");break;
case 'D': System.out.println("D 等級的分數(shù)段是60~70分以上");break;
case 'E': System.out.println("E 等級的分數(shù)段是60分以下");break; }
     c++;}}}
方法二:import java.io.* ;
    public class SC{
    public static void main(String arg[]) throws IOException{
     char c=(char)System.in.read();
     // System.in.read( )只接受一個鍵盤輸入字符,且是int型
     switch(c)
{case 'A': System.out.println("A 等級的分數(shù)段是90分以上");break;
case 'B': System.out.println("B 等級的分數(shù)段是80~90分以上");break;
case 'C': System.out.println("C 等級的分數(shù)段是70~80分以上");break;
case 'D': System.out.println("D 等級的分數(shù)段是60~70分以上");break;
case 'E': System.out.println("E 等級的分數(shù)段是60分以下");break;
default : System.out.println("輸入等級錯誤!");  }}}

查看更多