1. 程式人生 > >JAVA中鍵盤的錄入及基本的流程控制語句

JAVA中鍵盤的錄入及基本的流程控制語句

鍵盤的錄入

  • 導包:
    import java.util.Sanner;
  • 建立鍵盤錄入物件:
    Scanner sc=new Scanner(System.in);
  • 通過物件獲取資料
    int x=sc.nextlnt();
    當然除了錄入整形可也以錄入其它資料型別。

流程控制語句

  • 什麼是流程控制語句?
    在一個程式執行的過程中,各條語句的執行順序對程式的結果是有直接影響的。也就是說程式的流程對執行結果有直接的影響,所以我們必須清楚每條語句的執行流程,而且很多時候要通過控制語句的執行順序來實現我們要完成的功能。
  • 流程控制語句的分類
    順序結構
    選擇結構
    迴圈結構

順序結構

程式中最簡單最基本的流程控制,沒有特定的語法結構,按照程式碼的先後順序,依次執行,程式中大多數程式碼都是這樣執行的。

例如 :

package day1213;
public class Shipin01 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.println("姓名:張三");
		System.out.println("年齡:20");
		System.out.println("性別:男");
		System.out.println("程式結束");
	}

}
/*執行結果 : 姓名:張三
             年齡:20 
             性別:男 
             程式結束*/

選擇結構

也被稱為分支結構,選擇結構有特定的語法規則,程式碼要執行具體的邏輯運算進行判斷,邏輯運算的結果有兩個,所以產生選擇,按照不同的選擇執行不同的程式碼。

  • 選擇結構的分類:if語句、switch語句;
  • if語句(格式一):先計算比較表示式的值,看返回的是true還是false。
                 如果是true,就執行語句體;
                 如果是false,就不執行語句體;

 

 程式碼演示如下;

package day1213;
import java.util.Scanner;
public class Shipin02 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner scanner=new Scanner(System.in);
                System.out.print("請輸入成績:");
		int score=scanner.nextInt();
		if(score>90){
		System.out.println("考的不錯 獎勵500塊");
		}
                System.out.println("程式結束!");
	}

}
  • if~else語句(格式二):先計算比較表示式的值,看返回的是true還是false。
                                  如果是true,就執行語句體1;
                                  如果是false,就執行語句體2;

程式碼演示如下:

package day1213;
import java.util.Scanner;
public class Shipin04 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner scanner=new Scanner(System.in);
		System.out.print("請輸入你的成績:");
		int a=scanner.nextInt();
		if(a>100||a<0){
			System.out.println("輸入格式錯誤");
		}else if(a<=100&&a>85){
			System.out.println("優秀");
		}else if(a<=85&&a>75){
			System.out.println("良好");
		}else if(a<=75&&a>=60){
			System.out.println("及格");
		}else{
			System.out.println("不及格");
		}
	}
}

 

  •  if~else巢狀(格式三):在if~else語句中再加入if~else進行更深層次的選擇。

 

程式碼演示如下:

package day1213;
import java.util.Scanner;
public class Shipin05 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner scanner=new Scanner(System.in);
		System.out.print("請輸入運動員成績");
		int s=scanner.nextInt();
		if(s<=10){
			System.out.print("請輸入運動員性別:");
			String sex=scanner.next();
			if("男".equals(sex)){
				System.out.println("請進入男子組進行決賽");
			}else if("女".equals(sex)){
				System.out.println("請進入女子組進行決賽");
			}else{
				System.out.println("性別錯誤請重新輸入!");
			}
		}else {
			System.out.println("成績不合格,不能參加決賽!");
		}
	}
}

注意事項:

  • 比較表示式無論簡單還是複雜,結果必須是boolean型別;
  • if語句控制的語句體如果是一條語句,大括號可以省略;如果是多條語句,就不能省略;
  • 一般來說,有左大括號就沒有分號,有分號就沒有左大括號;
  • 三元運算子能實現的,if語句都可以實現,反之不成立;

什麼時候if語句可以實現不能用三目運算子?

當if語句控制的操作是一個輸出語句的時候不能,因為三元運算子是一個運算子,運算子操作完就應該有個結果而不是一個輸出。

  • switch語句

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

格式解釋:

  • 表示式取值:byte,short,int,char
  • JDK5以後可以使列舉;
  • JDK7以後可以是String;
  • case後面跟的是要和表示式進行比較的值;
  • 語句體可以是一條或者多條;
  • break表示中斷,結束switch語句;
  • default語句表示所有情況都不匹配的時候,執行的內容。

switch和if語句的區別

  • if語句適用場景:
  1. 針對結果是boolean型別的判斷;
  2. 針對一個範圍的判斷:
  3. 針對幾個常量的判斷
  • switch語句使用的場景:
  1. 針對幾個常量值得判斷

程式碼演示如下:

package org.org.westos.practice;

import java.util.Scanner;

public class switch01 {
    public static void main(String[] args) {
        //給定一個數值輸出對應星期
        Scanner rc=new Scanner(System.in);
        int x=rc.nextInt();

        switch (x){
            case 1:
                System.out.println("星期一");
                break;
            case 2:
                System.out.println("星期二");
                break;
            case 3:
                System.out.println("星期三");
                break;
            case 4:
                System.out.println("星期四");
                break;
            case 5:
                System.out.println("星期五");
                break;
            case 6:
                System.out.println("星期六");
                break;
            case 7:
                System.out.println("星期日");
                break;
            default:
                System.out.println("範圍1~7,不在範圍!");

        }

    }
}
/*6
星期六*/

 注意事項:

  • case後面只能是常量,不能是變數,而且多個case後面的值不能相同;
  • default可以省略,但不建議,它的作用是讓程式碼更健壯;
  • break可以分情況省略,省略之後會有case穿透現象;
  • default不一定要放在最後,可以放在任意位置;
  • switch語句結束的條件:遇到break或者執行到末尾;

迴圈結構

什麼是迴圈結構?

迴圈語句可以在滿足迴圈條件的情況下,反覆執行一段程式碼,這段被重複執行的程式碼被稱為迴圈體語句,當反覆執行這個迴圈體時需要在合適的時候把迴圈判斷條件是修改為false,從而結束迴圈,否則迴圈將一直執行下去,形成死迴圈;

迴圈結構的分類:

  • for迴圈
  • while迴圈

for迴圈:

基本格式:

for(初始化表示式語句;判斷條件語句;控制條件語句) {
			迴圈體語句;
		}

執行流程:

  • 執行初始化表示式語句;
  • 執行判斷條件語句,看其返回值是true還是false;是ture就繼續執行,是false就結束迴圈;
  • 執行迴圈體語句;
  • 執行控制條件語句;
  • 回到第二句繼續;

案例演示如下:

package day1212;

public class Xignxing {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
	     for(int i=0;i<4;i++){
	    	 for(int k=1;k<=3-i;k++){
	    	 System.out.print(" ");}
	            for (int j=1;j<=2*i+1;j++){
	                System.out.print("*");  
	            }
	            System.out.println("\t");
	        }
	}

}
/*
   *	
  ***	
 *****	
*******	
        */

注意事項:

  • 判斷條件語句無論簡單還是複雜結果是boolean型別。
  • 迴圈體語句如果是一條語句,大括號可以省略;如果是多條語句,大括號不能省略。建議永遠不要省略。
  • :一般來說:有左大括號就沒有分號,有分號就沒有左大括號

while迴圈:

基本格式:

初始化條件語句;
	 while(判斷條件語句) {
	 迴圈體語句;
	 控制條件語句;
		   }

執行流程:

  • 執行初始化條件語句;
  • 執行判斷條件語句,看其返回值是true還是false;如果是true,就繼續執行,如果是false,就結束迴圈;
  • 執行迴圈體語句;
  • 執行控制條件語句;
  • 回到判斷條件語句繼續;

do....while語句:至少執行一次迴圈體;

三種迴圈語句的區別

  1. do…while至少執行一次迴圈體;而for,while必須先判斷條件是否成立,然後決定是否執行迴圈體語句。
  2. 如果你想在迴圈接收後繼續使用控制條件的那個變數,用while迴圈,否則用for迴圈。
  3. 優先考慮for迴圈,因為變數及時的從記憶體中消失,可以提高記憶體的使用效率;

注意:System.out.println("*");和System.out.print("*");的區別;

控制跳轉語句

控制語句的跳轉和中斷

控制跳轉語句分類:

  • break中斷;
  • continue繼續;
  • return返回;

break的使用場景:

  • 在選擇結構的switch中使用;
  • 在迴圈語句中使用;

作用:退出單層迴圈;退出多層迴圈

continue的使用場景:

  • 在迴圈語句

作用:跳出一次迴圈執行下一次;

return的作用:退出一個方法;跳轉到上層呼叫的方法。

結論

  • break:結束單層迴圈;
  • return:結束當前方法;
  • continue:結束當前迴圈,執行下一次迴圈;