天天看點

Java學習總結--002鍵盤錄入+流程語句+方法重載

鍵盤錄入

1.為什麼要使用鍵盤錄入資料

a:為了讓程式的資料更符合開發的資料;

b:讓程式更靈活一下;

2.鍵盤錄入的基本格式

a:導包

格式:

import java.util.Scanner;

位置:

在class上面。

b:建立鍵盤錄入對象

格式:

Scanner sc = new Scanner(System.in);

c:通過對象擷取資料

格式:

int x = sc.nextInt();

輸入時注意從等号右邊開始輸,使用ALT+Enter鍵可補全代碼。

流程控制語句

1.什麼是流程控制語句

在一個程式執行的過程中,各條語句的執行順序對程式的結果是有直接影響的。我們必須清楚每條語句的執行流程。而且,很多時候我們要通過控制語句的執行順序來實作我們要完成的功能。

2.流程控制語句

1) 順序結構:是程式中最簡單最基本的流程控制,沒有特定的文法結構,按照代碼的先後順序,依次執行。從上往下,依次執行。

2)選擇結構:也被稱為分支結構。選擇結構有特定的文法規則,代碼要執行具體的邏輯運算進行判斷,邏輯運算的結果有兩個,是以産生選擇,按照不同的選擇執行不同的代碼。

分類:if語句

switch語句

if語句的格式1
if(比較表達式或者是boolean類型的值) {
	語句體;
}
           

執行流程:

先計算比較表達式的值,看其傳回值是true還是false。

如果是true,就執行語句體;

如果是false,就不執行語句體;

if語句的格式2

if(比較表達式) {
	語句體1;
}else {
	語句體2;
}
           

執行流程:

首先計算比較表達式的值,看其傳回值是true還是false。

如果是true,就執行語句體1;

如果是false,就執行語句體2;

if語句的格式3:

if(比較表達式1) {
	語句體1;
}else if(比較表達式2) {
	語句體2;
}else if(比較表達式3) {
	語句體3;
}
...
else {
	語句體n+1;
}
           

執行流程:

首先計算比較表達式1看其傳回值是true還是false,

如果是true,就執行語句體1,if語句結束。

如果是false,接着計算比較表達式2看其傳回值是true還是false,

如果是true,就執行語句體2,if語句結束。

如果是false,接着計算比較表達式3看其傳回值是true還是false,

如果都是false,就執行語句體n+1。

注意事項: 當隻要有一個條件滿足時,if語句結束。else是可以省略,但是不建議省略。

什麼時候if語句實作不能用三元改進?

當if語句控制的操作是一個輸出語句的時候就不能。

為什麼呢?因為三元運算符是一個運算符,運算符操作完畢就應該有一個結果,而不是一個輸出。

switch語句的格式

switch(表達式){
	case 值1:
		語句體1;
		break;
	case 值2:
		語句體2;
		break;
	case 值3:
		語句體3;
		break;
	....
	default:	
		語句體n+1;
		break;
}
           

執行流程:

先計算表達式的值

然後和case後面的比對,如果比對成功就執行對應的語句,遇到break就會結束,否則執行default控制的語句。

switch語句的一些特點:

1.switch語句所支援的資料類型,byte short int char JDK1.5之後支援枚舉類型 JDK1.7之 後支援字元串類型;

2.case 後面的隻能是常量;

3.default 可以寫也可以不寫 位置放在前後都行,他是所有case項都沒有比對上就會執行;

4.break 結束整個switch語句 break 如果說你忘了寫,會發生一個現象 case穿透,這種現象你可以利用;

在做判斷的時候,我們有兩種選擇,if語句和switch語句,那麼,我們到底該如何選擇使用那種語句呢?

if語句使用場景:

針對結果是boolean類型的判斷

針對一個範圍的判斷

針對幾個常量值的判斷

switch語句使用場景:

針對幾個常量值的判斷

3)循環結構:循環語句可以在滿足循環條件的情況下,反複執行某一段代碼,這段被重複執行的代碼被稱為循環體語句,當反複執行這個循環體時,需要在合适的時候把循環判斷條件修改為false,進而結束循環,否則循環将一直執行下去,形成死循環。

循環結構的分類:for循環、 while循環

for語句的格式:
for(初始化表達式語句;判斷條件語句;控制條件語句) {
	循環體語句;
}
           

執行流程:

a:執行初始化表達式語句

b:執行判斷條件語句,看其傳回值是true還是false

如果是true,就繼續執行

如果是false,就結束循環

c:執行循環體語句;

d:執行控制條件語句

e:回到B繼續。

初始化表達式語句隻執行一次。

while循環的基本格式:
   初始化條件語句;
    while(判斷條件語句) {
		 循環體語句;
		 控制條件語句;
   }
           

執行流程:

a:執行初始化條件語句;

b:執行判斷條件語句,看其傳回值是true還是false

如果是true,就繼續執行

如果是false,就結束循環

c:執行循環體語句;

d:執行控制條件語句

e:回到b繼續。

do...while語句的格式:
初始化條件語句;
	do {
		循環體語句;
		控制條件語句;
	}while(判斷條件語句);
           

執行流程:

a:執行初始化條件語句;

b:執行循環體語句;

c:執行控制條件語句;

d:執行判斷條件語句,看其傳回值是true還是false

如果是true,就繼續執行

如果是false,就結束循環

e:回到b繼續。

三種循環語句的差別:

(1):do…while循環至少執行一次循環體。

for,while循環必須先判斷條件是否成立,然後決定是否執行循環體語句。

(2): 如果你想在循環結束後,繼續使用控制條件的那個變量,用while循環,否則用for循環。用for循環。因為變量及早的從記憶體中消失,可以提高記憶體的使用效率。

建議優先考慮for循環,然後是while循環 ,最後是do…while循環

控制跳轉語句

break 中斷: 退出單層循環

continue 繼續:跳出一次循環,執行下一步操作。

return 傳回 :退出一個方法,跳轉到上層調用的方法。

break:		 結束單層循環;
continue:	 結束目前循環,執行下一次循環;
return: 		 結束目前方法;
           

方法

1.為什麼要有方法?

為了解決代碼重複編寫的問題。

2.什麼是方法

方法就是完成特定功能的代碼塊。

方法的格式
修飾符 傳回值類型 方法名(參數類型 參數名1,參數類型 參數名2 ....){
	方法體;
	return 傳回值;
}
           

(1): 修飾符 比較多,後面會詳細介紹。目前使用 public static

(2): 傳回值類型 用于限定傳回值的資料類型

(3): 方法名 就是一個名稱,它的存在是為了友善我們調用方法

(4): 參數類型 限定調用方法時傳入參數的資料類型

(5): 參數名 是一個變量,接收調用方法時傳入的參數。

這個參數其實有一個專業的名詞,被稱之為形式參數,它的作用是用來接收實際參數的.

(6): 方法體 完成功能的代碼

(7): return 結束方法以及傳回方法指定類型的值

(8): 傳回值 就是功能的結果,由return帶回,帶回給調用者

如何寫一個方法:

(1):傳回值類型 明确功能結果的資料類型;

(2):參數清單 你要傳遞幾個參數,以及每一個參數的資料類型;

方法的注意事項:

1.方法不調用不執行;

2.方法與方法是平級關系,不能嵌套定義;

3. 方法定義的時候參數之間用逗号隔開;

4. 方法調用的時候不用在傳遞資料類型;

5.如果方法有明确的傳回值,一定要由return帶回一個值;

方法重載

在同一個類中,允許存在一個以上的同名方法,隻要它們的參數清單不同,與傳回值無關。

參數清單不同:

1)參數個數不同;

2)參數類型不同;

以下是一些案例:

package demo;
     import java.util.Scanner; 
     import static sun.plugin.util.ProgressMonitor.get;
      public class demo8 {
        public static void main(String[] args) {
            //  案例示範:
            //  需求:根據鍵盤錄入的資料輸出對應的乘法表;
            Scanner sc=new Scanner(System.in);
            System.out.println("請輸入數字:");
            int n=sc.nextInt();         //鍵盤錄入
            getChenfabiao(n);     //在主方法中調用該方法
        }
       
        private static void getChenfabiao(int a) {
            for(int i=1;i<=a;i++){
                for(int j=1;j<=i;j++){
                    System.out.print(j+"*"+i+"="+(j*i)+"\t");
                }
                System.out.println();
            }
        }
      }
           
package demo;
    import java.util.Scanner;
    public class demo9 {
    public static void main(String[] args) {
        //按照輸入得行數和列數,列印相應得“*”;
           Scanner sc=new Scanner(System.in);
        System.out.println("請輸入行數:");
        int x = sc.nextInt();
        System.out.println("請輸入列數:");
        int y = sc.nextInt();
        showStar(x,y);
    }
    private static void showStar(int x, int y) {
        for(int i=0;i<x;i++){
            for(int j=0;j<y;j++){
                System.out.print("*");
            }
            System.out.println();
        }
    }
    }