狂神說Java個人筆記-Scanner


Scanner對象

//創建一個掃描對象,用於接收鍵盤數據
Scanner scanner=new Scanner(System.in);
System.out.println("使用next方式接收:");
//判斷用戶有沒有輸入字符串
if(scanner.hasNext()){
   //使用next方式接收
   String str=scanner.next();//程序會等待用戶輸入完畢
   System.out.println("輸出的內容為:"+str);
}
//凡是屬於IO流的類如果不關閉會一只占用資源,要養成好習慣用完就關掉
scanner.close();

next():

  1. 一定要讀取到有效字符后才可以結束輸入。

  2. 對輸入有效字符之前遇到的空白,next()方法會自動將其去掉

  3. 只有輸入有效字符后才將其后面輸入的空白作為分隔符或者結束符。

  4. next()不能得到帶有空格的字符串!

nextLine():

  1. 以Enter為結束符,也就是說nextLine()方法返回的是輸入回車之前的所有字符。

  2. 可以獲得空白。

Scanner進階

//我們可以輸入多個數字,並求總和與平均數,每輸入一個用回車確認,通過輸入非數字來結束輸入並輸出執行結果
//和
double sum=0;
//次數
int count=0;

Scanner scanner = new Scanner(System.in);
System.out.println("請輸入數字:");
while (scanner.hasNextDouble()){
   double x=scanner.nextDouble();
   count++;
   sum+=x;
   System.out.println("你輸入了第"+count+"個數字,當前總數為:"+sum);
}
System.out.println("總數為:"+sum);
System.out.println("平均數為:"+sum/count);
scanner.close();

順序結構

Java的基本結構就是順序結構,除非特別指明,否則就按照順序一句一句執行。

順序結構是最簡單的算法結構。

語句與語句之間,框與框之間是按從上到下的順序進行的,它是由若干個依次執行的處理步驟組成的,它是任何一個算法都離不開的一種基本算法結構。

選擇結構

if單選擇結構

  • 我們很多時候需要去判斷一個東西是否可行,然后我們才去執行,這樣一個過程在程序中用if語句來表示

  • 語法:

    if(布爾表達式){

    //如果布爾表達式為true將執行的語句

    }

     

 

if雙選擇結構

語法:

if(布爾表達式){//如果布爾表達式的值為true}

else{//如果布爾表達式的值為false}

 

 

if多選擇結構

if(布爾表達式1){//如果布爾表達式1的值為true

}else if(布爾表達式2){//如果布爾表達式2的值為true

}else if(布爾表達式3){//如果布爾表達式3的值為true

}else{//如果以上布爾表達式都不為true}
   /**
   if語句至多有1個else語句,else語句在所有的else if語句之后;if語句可以有多個 else if語句,它們必須在else語句之前。
   一旦其中一個else if語句檢測為true,其他的else if以及else語句都將跳過執行
   */

 

嵌套的if結構

使用嵌套的if else語句時何法的,可以在另一個if或者else if語句中使用if 或者else if語句。也可以像if語句一樣嵌套 else if。。else

語法:

if(布爾表達式1){
   //如果布爾表達式1結果為true
   if(布爾表達式2){
       //如果布爾表達式2結果為true
  }
}

switch多選擇結構

  • 多選擇結構還有一個實現方式就是switch case語句

  • switch case語句判斷一個變量與一系列值中某個值是否相等,每個值稱為一個分支。

  • switch語句中的變量類型可以是:

    • byte、short、int或者char。

    • 從Java SE7開始

    • switch支持字符串String類型了

    • 同時case標簽必須為字符串常量或字面量。

    • //case穿透 要寫break
      //java-class(字節碼文件)---反編譯(idea)
      String name="趙憨憨";
      switch (name){
         case "趙雲":
             System.out.println("我是趙雲");
             break;
         case "趙東":
             System.out.println("我是趙大");
             break;
         default:
             System.out.println("這是個誰");
      }

      while循環

      while是最基本的循環,它的結構為:

      while(布爾表達式){
         //循環內容
      }
      • 只要布爾表達式為true,循環就會一直執行下去

      • 我們大多數情況是會讓循環停止下來的,我們需要一個表達式生效的方式來結束循環。

      • 少部分情況需要循環一直執行,比如服務器的請求響應監聽等。

      • 循環條件一直為true就會造成無限循環【死循環】,我們正常的業務邏輯中應該盡量避免死循環。會影響程序性能或者造成程序卡死崩潰!

        do...while循環

         

  • 對於while語句而言,如果不滿足條件,則不能進入循環。但有時候我們需要即使不滿足條件,也至少執行一次。

  • do...while循環和while循環相似,不同的是,do...while循環至少會執行一次。

do{//代碼語句
}while(布爾表達式);

while和do-while的區別:

  • while先判斷后執行。dowhile是先執行后判斷!

  • DO...while總是保證循環體會被至少執行一次!這是他們的主要差別。

    For循環

    • 雖然所有循環結構都可以用while或者do...while表示,但Java提供了另一種語句——for循環,使一些循環結構變得更加簡單。

    • for循環語句是支持迭代的一種通用結構,是最有效、最靈活的循環結構。

    • for循環執行的次數是在執行前就確定的。語法格式如下:

      for(初始化;布爾表達式;更新){
          //代碼語句
      }
      /**
      關於for循環有一下幾點說明:
      最先執行初始化步驟。可以聲明一種類型,但可初始化一個或多個循環控制變量,也可以是空語句。然后,檢測布爾表達式的值。如果為true,循環體被執行。如果為false,循環終止,開始執行循環體后面的語句。執行一次循環后,更新循環控制變量(迭代因子控制循環變量的增減)。
      再次檢測布爾表達式。循環執行上面的過程。
      */

       

    增強for循環

    語法格式:

    for(聲明語句:表達式){
        //代碼句子
    }

    聲明語句:聲明新的局部變量,該變量的類型必須和數組元素的類型匹配。其作用域限定在循環語句塊,其值與此時數組元素的值相等。

    表達式:表達式是要訪問的數組名,或者是返回值為數組的方法。

break continue

  • break在任何循環語句的主體部分,均可用break控制循環的流程。break用於強行退出循環,不執行循環中剩余的語句。(break語句也在switch語句中使用)

  • continue語句在循環語句體重,用於終止某次循環過程,即跳過循環體重尚未執行的語句,接着進行下一次是否執行循環的判定。

  • 關於goto關鍵字

  •  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM