JAVA第二次課程

1.變量聲明規則

//1.定義一個類,類名叫 VariableDemo02
public class VariableDemo02 {
//2.定義main方法,作為主程序入口
    public static void main(String[] args) {
        //3.變量未賦值,不能使用
        int a;
        //a =20;
        System.out.println(a);//程序會報錯
     

        {
             //大括號包裹起來的代碼叫做代碼塊
           //作用:讓變量盡可能早的從內存消失,節約資源,提高效率
             //高級編程語言的時候, GC 垃圾回收機制
            double d = 22.22;
            System.out.println(d);
        }
        //4.此行代碼會報錯變量d 從內存已經消失,無法訪問
      System.out.println(d);
       //5.變量可以一行聲明多個
        int e = 10, f= 20, h= 50;
        System.out.println(e);

        
    }
}

2.標識符: 給類、接口、方法、變量等起名字的規范

  • java中,字母、數字、下劃線、美元符號組成
  • python中,C 字母、數字、下劃線組成
  • 標識符不能以數字開頭
  • 不能喝和Java中的關鍵字(保留字)重名
  • 最好做到 見到名字知道他的含義,讓別人看的懂 name= "張珊";
    1、類 --》大駝峰(每個單詞首字母都大寫,其他全部小寫)
    比如VariableDemo01,HelloWord
    2、 變量--》 小駝峰 (從第二個單詞開始,首字母大寫,其余都小寫)
    例如,studetName , userName
    3、常量 --》 所有字母全都大寫,單詞之間用下劃線
    MAX_MONEY
    4、包的命名規范,所有的字母都小寫,多級包之間使用"."隔開,
    一般包名都是你公司域名的反寫
    www.neusoft.com --> com.neusoft.yiliao
    5、方法命名 —--》 小駝峰
    public static void getAge(){
    // 方法名用小駝峰//

3.數據類型轉換

// 如果數據類型不一致,需要進行數據類型轉換
  // 1、自動類型轉換, 也叫隱式轉換
  //  是指 小類型自動提升為大類型
  // 將取值范圍小的類型自動提升為取值范圍大的類型
  public static void main(String[] args) {
      //    定義兩個int類型的變量a和b, 分別賦值為10, 20
      int a = 10;
      int b = 20;
      //    通過輸出語句打印變量a和b的和.
      System.out.println(a+b);
      //    讓int類型的變量c, 接收變量a和b的和.
      int c = a + b;
      //  打印變量c的值.
      System.out.println(c);
      System.out.println("********************************");
      //  定義兩個變量aa和bb, 一個是int類型的數據, 另一個是byte類型的數據.
      int aa =30;
      byte bb = 40;
      // 定義變量cc接收 變量aa和bb的和.
      int cc = aa + bb;
      byte cc = aa + bb;
      //  分別設置變量cc的數據類型為byte類型和int類型, 觀察結果并打印.
     System.out.println(cc);
      // 2、 強制類型轉換, 顯示轉換  大類型--》 小類型
      double d = 30.5;
      // 數據類型 變量名 = (強制轉換的類型) 要被轉換的數值
      int dd = (int) d;
      System.out.println(dd);
image.png

4. IDEA常用快捷鍵

快捷鍵 功能
Alt+Enter 導入包,自動修正代碼
Ctrl+Y 刪除光標所在行
Ctrl+D 復制光標所在行的內容,插入光標位置下面
Ctrl+Alt+L 格式化代碼
Ctrl+/ 單行注釋
Ctrl+Shift+/ 選中代碼注釋,多行注釋,再按取消注釋
Alt+Shift+上下箭頭 移動當前代碼行

5.ASCII表中常用幾個

字符 數值
0 48
a 97
A 65
z 122
Z 90
9 57

6.運算符

1.賦值運算符

符號 作用 說明
= 賦值 a=10,將10賦值給變量a
+= 加后賦值 a+=b,將a+b的值給a
-= 減后賦值 a-=b,將a-b的值給a
*= 乘后賦值 a*=b,將a×b的值給a
/= 除后賦值 a/=b,將a÷b的商給a
%= 取余后賦值 a%=b,將a÷b的余數給a

2.關系運算符

符號 說明
== a==b,判斷a和b的值是否相等,成立為true,不成立為false
!= a!=b,判斷a和b的值是否不相等,成立為true,不成立為false
> a>b,判斷a是否大于b,成立為true,不成立為false
>= a>=b,判斷a是否大于等于b,成立為true,不成false
< a<b,判斷a是否小于b,成立為true,不成立為false
<= a<=b,判斷a是否小于等于b,成立為true,不成立為false

3.邏輯運算符

注意: 假設下表中的a和b, 都是boolean類型的值.

符號 作用 說明
& 邏輯與 a&b,并且的意思. 有false則整體為false, 都為true, 則整體為true.
l 邏輯或 b,或者的意思, 有true則整體為true, 都為false, 則整體為false
! 邏輯非 !a,取反的意思, 以前為true, 取反后為false, 以前為false, 取反后為true.
^ 邏輯異或 a^b,異同的意思, 相同為false, 不同為true

.

  • 自增運算
  • a++,先進行賦值,再進行自增
public static void main(String[] args) {
       int a = 1;
       int b = a++;
       System.out.println(a++);a++ = 1
       System.out.println(a); // a=2
       System.out.println(b);  // b=1
    }
  • ++a 先進行自增, 然后在進行賦值
public static void main(String[] args) {
        int a = 1;
        int b = ++a;
        System.out.println(++a);++a = 3
        System.out.println(a); // a=2
        System.out.println(b);  // b=2
   }

流程控制

概述:在一個程序執行的過程中,各條語句的執行順序對程序的結果是有直接影響的。所以,我們必須清楚每條語句的執行流程。而且,很多時候要通過控制語句的執行順序來實現我們想要的功能。
例如: 某些代碼是滿足特定條件的情況下, 才會被執行. 而有些代碼, 在滿足某些條件的情況下, 需要重復執行, 這些, 都需要用到流程控制語句.

分類

7.順序結構

概述:順序結構指的是代碼是按照從上往下, 從左往右的順序, 依次逐行執行的, 且順序結構也是Java程序的默認結構.

  • 定義類OrderDemo01, 在類中定義main方法, 打印如下數據:

start
HelloWorld1
HelloWorld2
HelloWorld3
end

public class OrderDemo01 {
    public static void main(String[] args) {
        //打印指定的數據
        System.out.println("start");
        System.out.println("HelloWorld1");
        System.out.println("HelloWorld2");
        System.out.println("HelloWorld13");
        System.out.println("end");
    }
}

8.順序結構

1.if語句

  • 單分支(判斷一種情況)

執行流程:
1.先執行關系表達式, 看其結果是true還是false.
2.如果是true, 則執行大括號中的語句體.
3.如果是false, 則大括號中的語句體不執行.
格式:
if(要判斷的條件){
滿足條件時要執行的事情
}

定義變量time表示時間, 如果它的范圍是在[11,13]之間, 就打印吃中午飯, 否則不操作

public class Demo06 {
   public static void main(String[] args) {
        // 定義一個時間變量 time
       int time = 10;
        if(time >=11 && time <= 13) {
            System.out.println("吃中午飯");
        }
    }
}
  • 雙分支(判斷兩種情況)

執行流程:
1.先執行關系表達式, 看其結果是true還是false.
2.如果是true, 則執行語句體1.
3.如果是false, 則執行語句體2.
格式:
if(要判斷的條件){
滿足條件時要執行的事情
}else {
不滿足條件時要執行的事情
}

定義變量time表示時間, 如果它的范圍是在11~13之間, 就打印早上好, 否則就打印中午好

public class IfDemo02 {
    public static void main(String[] args) {
        int time = ;
        if(time >= 11 && time <= 13) {
            System.out.println("早上好");
        } else {
            System.out.println("中午好");
        }
    }
}

判斷奇偶數:提示用戶鍵盤錄入一個數據并接收;判斷該數據是奇數還是偶數, 并將結果打印到控制臺上.

public class IfDemo03 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("請錄入一個整數: ");
        int num = sc.nextInt();
        if (num % 2 == 0) {
            System.out.println(num + "是偶數");
        } else {
            System.out.println(num + "是奇數");
        }
    }
}
  • 多分支(判斷多種情況

執行流程:
1.先執行關系表達式1, 看其結果是true還是false.
2.如果是true, 則執行語句體1, 整個if語句結束.
3.如果是false, 則判斷關系表達式2, 看其結果是true還是false.
4.如果是true, 則執行語句體2, 整個if語句結束.
5.如果是false, 則判斷關系表達式3, ...以此類推.
6.如果所有的關系表達式都不成立, 則執行else語句的語句體n, 整個if語句
結束.
格式:
f(關系表達式1) {
//語句體1;
} else if(關系表達式2){
//語句體2;
} else if(關系表達式3){ //這里可以根據需求, 有多個else if語句
//語句體3;
} else {
//語句體n;
}

提示用戶錄入[1, 7]之間的數字, 并接收.根據用戶錄入的數字, 打印對應的星期, 格式如下:用戶錄入1, 打印"星期一";用戶錄入2, 打印"星期二"...以此類推:用戶錄入非法數字, 打印"沒有這樣的日

public class IfDemo04 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("請錄入一個1 - 7之間的整數: ");
        int week = sc.nextInt();
        if (week == 1) {
            System.out.println("星期一");
        } else if(week == 2) {
            System.out.println("星期二");
        } else if(week == 3) {
            System.out.println("星期三");
        } else if(week == 4) {
            System.out.println("星期四");
        } else if(week == 5) {
            System.out.println("星期五");
        } else if(week == 6) {
            System.out.println("星期六");
        } else if(week == 7) {
            System.out.println("星期日");
        } else {
            System.out.println("沒有這樣的日期");
        }
    }

小明快要期末考試了,小明爸爸對他說,會根據他的考試成績,送他不同的禮物.
假如你可以控制小明的得分,請用程序實現小明到底該獲得什么樣的禮物,并在控制臺輸出。
禮物標準如下:
95~100 山地自行車一輛
90~94 游樂場玩一次
80~89 變形金剛玩具一個
80以下 胖揍一頓

public class IfDemo05 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("請錄入小明的考試成績: ");
        int score = sc.nextInt();
        if (score >= 95 && score <= 100) {
            System.out.println("獎勵小明: 山地自行車一輛");
        } else if(score >= 90 && score < 95) {
            System.out.println("獎勵小明: 游樂場玩兒一次");
        } else if(score >= 80 && score < 90) {
            System.out.println("獎勵小明: 變形金剛玩具一個");
        } else if(score >= 0 && score < 80){
            System.out.println("獎勵小明: 男女雙混組合拳 + 掃帚棒法");
        } else {
            System.out.println("考試成績錄入有誤.");
        }
    }
}

提示用戶錄入3個整數, 并接收.通過if語句獲取這三個整數的最大值.將結果打印到控制臺上.

public class IfDemo06 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("請錄入第一個整數: ");
        int a = sc.nextInt();
        System.out.println("請錄入第二個整數: ");
        int b = sc.nextInt();
        System.out.println("請錄入第三個整數: ");
        int c = sc.nextInt();

         // 方式一
        int max = a;
        //     通過if語句獲取這三個整數的最大值.

        if (a>b && a > c){
            max = a;
        }else if(b > a && b > c){
            max = b;
        }else {
            max = c;
        }
        //  將結果打印到控制臺上.
        System.out.println("最大值是"+max);

        //方式二 用if嵌套
        int max2 = a;
        if (a > b){
            if( a > c){
                max2 = a;
            }else {
                max2 = c;
            }
        }else {
            if (b > c){
                max2= b;
            }else {
                max2 = c;
            }
        }
        System.out.println("方式二判斷的最大值是"+max2);

    }
  • 記憶

1.if語句控制的語句體如果只有一行代碼, 則該大括號可以省略不寫.
2.if語句控制的語句體如果只有一行代碼, 則該大括號可以省略不寫, 定義變量的語法除外.
3.你省略if后邊的大括號時, 有個問題一定要注意, 不要亂寫分號.

2switch語句(一般是用于做固定值判斷的)

執行流程:
1.先計算表達式的值, 然后按照從上往下的順序依次和每一個case對應的值相匹配.
2.如果能匹配成功, 則執行該case對應的語句體, 然后執行break, 至此, 整個switch語句結束.
3.如果和所有的case值都不匹配, 則執行default對應的語句體, 然后執行break, 至此, 整個switch語句結束.
4.解釋: default語句就類似于if. else語句中的else, 當所有條件都不滿足時才會執行.
格式:
switch(表達式) {
case 值1:
語句體1;
break;
case 值2:
語句體2;
break;
case 值3:
語句體3;
break;
... //根據需求, 可以寫多組case.
default:
語句體n;
break;
}

一年有12個月, 分屬于春夏秋冬4個季節, 鍵盤錄入一個月份, 請用程序實現判斷該月份屬于哪個季節, 并輸出。
具體標準如下:
輸入: 1、2、12 輸出:冬季
輸入: 3、4、5 輸出:春季
輸入: 6、7、8 輸出:夏季
輸入: 9、10、11 輸出:秋季
輸入:其它數字 輸出:數字有誤

public class SwitchDemo07 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("請錄入一個月份: ");
        int month = sc.nextInt();
        switch (month) {
            case 12:
            case 1:
            case 2:
                System.out.println("冬季");
                break;
            case 3:
            case 4:
            case 5:
                System.out.println("春季");
                break;
            case 6:
            case 7:
            case 8:
                System.out.println("夏季");
                break;
            case 9:
            case 10:
            case 11:
                System.out.println("秋季");
                break;
            default:
                System.out.println("沒有這樣的日期");
                break;
        }
        // case穿透 如果case中不寫 break 將出現 case穿透 現象,
        // 也就是說 不會再判斷下一個case值 直接向后運行,直到遇到
    //break,或者switch語句結束
}

小明快要期末考試了,小明爸爸對他說,會根據他的考試成績,送他不同的禮物.假如你可以控制小明的得分,請用程序實現小明到底該獲得什么樣的禮物,并在控制臺輸出。
禮物標準如下:
90~100 山地自行車一輛
80~89 游樂場玩一次
70~79 變形金剛玩具一個
70以下 胖揍一頓

public class SwitchDemo09 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("請錄入小明的考試成績: ");
        int score = sc.nextInt();
        if (score >= 0 && score <= 100) {
            //合法成績
            switch (score / 10) {
                case 10:
                case 9:
                    System.out.println("獎勵小明: 山地自行車一輛");
                    break;
                case 8:
                    System.out.println("獎勵小明: 游樂場玩兒一次");
                    break;
                case 7:
                    System.out.println("獎勵小明: 變形金剛玩具一個");
                    break;
                default:
                    System.out.println("獎勵小明: 男女雙混組合拳 + 掃帚棒法");
                    break;
            }
        } else {
            //非法成績
            System.out.println("您錄入的成績有誤!");
        }
    }
}

根據工齡(整數)給員工漲工資(整數), 工齡和基本工資通過鍵盤錄入
漲工資的條件如下:
[10-15) +5000
[5-10) +2500
[3~5) +1000
[1~3) +500
[0~1) +200
打印格式如下:
您目前工作了10年,基本工資為 3000元, 應漲工資 5000元,漲后工資 8000元

public static void main(String[] args) {
    // 1.創建鍵盤錄入對象
        Scanner sc = new Scanner(System.in);
        // 2.定義變量age表示工齡(假設為int類型),定義變量salary表示基
 //本工資(假設為int類型)
//      int age,salary;
        // 3.通過鍵盤錄入給工齡age賦值和基本工資salary賦值
//      age = sc.nextInt();
//      salary = sc.nextInt();
        int age = sc.nextInt();
        int salary = sc.nextInt();
        int addSalary = 0;
        // 4.對工齡進行邏輯判斷,根據不同的工齡區間,進行漲工資salary+=n;(n表示:漲工資的數量)
        if(age>=15||age<0) {
            System.out.println("您輸入的工齡不合法~");
            return ;
        }
        //[10-15)     +5000
        if(age>=10&&age<15) {
            addSalary = 5000;
        } else if(age>=5&&age<10){//[5-10)      +2500
            addSalary = 2500;
        } else if(age>=3&&age<5) {//[3~5)       +1000
            addSalary = 1000;
        } else if(age>=1&&age<3) {//[1~3)       +500
            addSalary = 500;
        } else if(age>=0&&age<1) {//[0~1)       +200
            addSalary = 200;
        }               
        // 5.按照格式進行打印
        System.out.println("您目前工作了"+age+"年,基本工資為 
           "+salary+"元, 應漲工資 "+addSalary+"元,漲后工資 "+
         (salary+addSalary)+"元");}
}

鍵盤錄入一個三位數字,輸出該三位數字是否是水仙花數字?
水仙花數字要求: 指的是一個三位數,個位、十位、百位的數字立方和等于原數

public static void main(String[] args) {
    //1.創建鍵盤錄入對象
    Scanner sc = new Scanner(System.in);
    //2.獲取一個int數字
    System.out.println("請輸入一個三位整數");
    int num = sc.nextInt();
        
    //3.獲取個位,十位,百位
    int ge = num%10;
    int shi = num/10%10;
    int bai = num/100%10;
    //4.求個位,十位,百位的立方和
    int sum = ge*ge*ge + shi*shi*shi + bai*bai*bai;
        
    //5.利用if語句判斷立方和是否等于該數字本身,并輸出結果
    if(sum == num) {
        System.out.println(num+"是水仙花數字 ");
    } else {
        System.out.println(num+"不是水仙花數字 ");
    }
}

9.循環結構

1.for循環(一般適用于循環次數固定的情況.)

格式:
for(初始化條件1; 判斷條件2; 控制條件3) {
//循環體4;
}

案例一:for循環入門:通過for循環, 打印10次"Hello World!".

public class ForDemo01 {
    public static void main(String[] args) {
        for (int i = 0; i < 10; i++) {
            System.out.println("Hello World!");
        }
    }
}

案例二: 打印數字,通過for循環, 打印1~5之間的數字.通過for循環, 打印5~1之間的數字.

public class ForDemo02 {
    public static void main(String[] args) {
        //1. 通過for循環, 打印1~5之間的數字.
        for (int i = 1; i <= 5 ; i++) {
            System.out.println(i);
        }
        System.out.println("--------------");

        //2. 通過for循環, 打印5~1之間的數字.
        //ritar
        for (int i = 5; i >= 1; i--) {
            System.out.println(i);
        }
    }
}

案例三:求和案例:通過for循環, 獲取1 ~ 5之間的數字之和.

public class ForDemo03 {
    public static void main(String[] args) {
        //1. 定義變量sum, 用來記錄數據和.
        int sum = 0;
        //2. 通過for循環, 依次獲取到1~5之間的數字.
        for (int i = 1; i <= 5; i++) {
            //3. 將獲取到的數字, 累加給變量sum.
            sum += i;
        }
        System.out.println("1 - 5之間的數字之和是: " + sum);
    }
}

案例四:求1-100之間的偶數和,并把求和結果打印到控制臺上.

public class ForDemo04 {
    public static void main(String[] args) {
        //1. 定義變量sum, 用來記錄數據和.
        int sum = 0;
        //2. 通過for循環, 依次獲取到1 - 100之間的數字.
        for (int i = 1; i <= 100; i++) {
            //3. 判斷當前遍歷到的數字是否是偶數.
            if (i % 2 == 0) {
                //4. 走到這里, 說明是偶數, 累加給變量sum.
                sum += i;
            }
        }
        //5. 打印結果.
        System.out.println("1 - 100之間的偶數之和是: " + sum);
    }
}

案例五: 求和 + 計數,獲取1 - 100之間的奇數和, 以及奇數的個數.

//需求: 獲取1 - 100之間的奇數和, 以及奇數的個數.
public class ForDemo07 {
    public static void main(String[] args) {
        int count = 0;
        int sum = 0;
        for (int i = 1; i <= 100 ; i++) {
            if (i % 2 != 0) {
                sum += i;
                count++;
            }
        }
        System.out.println("1-100之間的奇數個數為: " + count + ", 這些奇數
       的總和為: " + sum);
    }
}

案例八: 換行輸出,把1~100之間的數字, 按照6個一行的格式進行輸出.

public class ForDemo08 {
    public static void main(String[] args) {
        int flag = 6;
        int count = 0;
        for (int i = 1; i <= 100 ; i++) {
            System.out.print(i + "\t");
            if (++count % flag == 0)
                System.out.println();
        }
    }
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容