【Java】day4-- if、switch、while、for語句部分知識點總結

(一)switch語句

注意事項:

1.switch語句只能用byte、short、 char、 int ,從jdk7.0開始可以用字符串類型。
2.case語句後面只能跟常量,不能跟變量、表達式。
3.switch語句的停止條件:選項匹配之後只有遇到break或者結束switch的大括號纔會結束執行,否則會按代碼順序執行,且不會再判斷選項是否匹配。
4.不管代碼順序如何,匹配時優先判斷case,最後判斷default。

(二)死循環寫法

for( ; ; ) 、while(true)

(三)while

while(false){},在編譯時會報錯,因爲java編譯器中不允許有根本不能執行的代碼出現。

但是boolean flag=false,while(flag){},編譯時不會報錯,因爲編譯時只會識別出flag是boolean類型,但不知道flag變量具體的值,所以編譯會通過,但是執行時該代碼段依然不會執行。

 

(四)題目舉例

1、數字遊戲

規則:

    1.產生一個1-10之間的隨機數
    2.接受鍵盤錄入一個數字,判斷錄入的數字是否與隨機數相等
    3.最多隻能猜三次

產生隨機數的步驟:
    1.創建一個隨機數對象 Random
    2.調用隨機數對象的nextInt()方法即可產生一個隨機數
    3.導包 import java.util.*;

接受鍵盤錄入數字的步驟:

    1.創建一個掃描器 Scanner

    2.調用掃描器的方法nextInt(),掃描數據,鍵盤錄入數據默認爲字符串,nextInt()將字符串強制轉換爲int。

    3.導包  import java.util.*;

代碼如下:

import java.util.*;
class  work3
{
	public static void main(String[] args) 
	{
		//創建一個隨機數對象
		Random random=new Random();
		//調用隨機數對象的nextInt()方法即可產生一個隨機數
		int num=random.nextInt(11);//0-n-1
		//System.out.println("隨機數是:"+num);
		//接受鍵盤錄入
		//創建一個掃描器
		Scanner scanner=new Scanner(System.in);
		//調用掃描器的方法,掃描數據
		int times=0,flag=0;
		while(times<3){
			times++;
			int guess=scanner.nextInt();//鍵盤錄入數據
			if(guess==num)
			{
				flag=1;
				System.out.println("猜對了!!!");
				break;
			}
			else if(guess>num)
				System.out.println("猜大了~~~還剩餘"+(3-times)+"次");
			else
				System.out.println("猜小了~~~還剩餘"+(3-times)+"次");
			
		}
		if(flag==0)
			System.out.println("很遺憾猜錯了");
	}
}

2、用戶登錄

要求:從鍵盤輸入用戶名和密碼,若輸入的用戶名和密碼分別爲root,admin顯示登錄成功,否則顯示用戶名或密碼錯誤。

鍵盤錄入字符串的步驟與錄入數字步驟相同,只是調用的是next()方法。

判斷兩個字符串是否相等時,用str1.equals(str2),不能用==。

==的作用:

    1.普通數據類型,用於判斷兩個數據的值是否相等,如int,char,byte等。

    2.引用數據類型,用於判斷兩個變量的內存地址是否相等,即是否指向同一個內容,如字符串,數組等。

代碼如下:

import java.util.*;
class work2 
{
	public static void main(String[] args) 
	{
		//創建掃描器對象
		Scanner scanner=new Scanner(System.in);
		System.out.println("請輸入您的用戶名");
		//調用掃描器的掃描方法,掃描數據  
		String name=scanner.next();//表示錄入字符串
		System.out.println("請輸入您的密碼");
		String password=scanner.next();

		if("root".equals(name) && "admin".equals(password))
			System.out.println("登錄成功!");
		if(!"root".equals(name))
			System.out.println("用戶名錯誤");
		if(!"admin".equals(password))
			System.out.println("密碼錯誤");
		//System.out.println("abc".equals(line));//字符串是引用數據類型,==用於引用數據類型,比較的是內存地址,即字符串的首地址

	}
}

3、break關鍵字默認是作用於當前層循環,能否使其作用於其他循環?(continue方法類似)

通過和標籤一起使用,標籤的使用規則:

       1.標籤的命名和標識符的命名規則一樣。

       2.若可能因爲代碼無法執行導致編譯不通過,則最好不用標籤。

class if1 
{
	public static void main(String[] args) 
	{

		outer:for(int i=0;i<2;i++){
			inner:for(int j=0;j<3;j++){
				System.out.println("Hello World!");
				break outer;
			}
		}
	}
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章