1. 程式人生 > 其它 >計算點到直線/線段的距離

計算點到直線/線段的距離

3、選擇結構

1.基本資料型別(byte,short,int,long,float,double,char,boolean)表比較用

​ 關係運算符(>,>=,<,<=,==,!=).
引用資料型別表比較用equals(),語法:引用型別變數1.equals(引用型別變數2);

eg:public static void main(String[] args){
	//準備變數
	int num1=11;
	int num2=11;
	//基本資料型別表比較
	boolean result1=num1==num2;
	System.out.println(result1);	
	//宣告引用資料型別
	String s1="abc";
	String s2="abc";
	boolean result2=s1.equals(s2);
	System.out.println(result2);
}

2.Java中結構

​ 2.1:順序結構.
​ 2.2:選擇結構
​ 2.3:迴圈結構

3.基本if選擇結構:用來解決只有一種(單分支)情況的問題.

​ 3.1:語法:if(條件){
​ 語句塊;
​ }

​ 3.2:執行流程:如果條件成立,執行語句塊;如果條件不成立,就跳過基本if選擇結構,執行之後 語句.


eg:public static void main(String[] args){
	//獲得具有從鍵盤上接收資料的能力
	Scanner input=new Scanner(System.in);
	
	System.out.println("你是否有女朋友?(y表示有,其他表示沒有)");
	//從鍵盤上接收結果並存在變數中
	String answer=input.next();
	
	if(!answer.equals("y")){
		System.out.println("加油學技術,讓千鋒給你分配一個女朋友");
	}
}
題目:你每天晨考是否考了100分,如果是,週五老師請吃飯

4.if-else結構:用來解決有兩種情況,且兩情況無論如何都會執行其中一種.

​ 4.1:語法:if(條件){
​ 語句塊1;
​ }else{
​ 語句塊2;
​ }
​ 4.2:執行流程:如果條件為true,就執行語句塊1;如果條件為false,就執行語句塊2.


	eg:public static void main(String[] args){
	//獲得具有從鍵盤上接收資料的能力
	Scanner input=new Scanner(System.in);
	
	System.out.println("是否每天晨考考了一百分?(y表示是,其他表示否)");
	//從鍵盤上接收結果,並存在變數中
	String answer=input.next();
	
	if(answer.equals("y")){
		System.out.println("週五老師請吃飯");
	}else{
		System.out.println("抄寫10遍");
	}
}
題目:問你是否有女朋友,如果有,找到高薪工作後就結婚;如果沒有,找到高薪工作後,千鋒給你分配一個女朋友.

5.多重if選擇結構:解決有兩種及以上情況分支判斷問題.

5.1:語法:if(條件1){
			語句塊1;
		}else if(條件2){
			語句塊2;
		}else if(條件3){
			語句塊3;
		}else{
			else塊;
		}

5.2:執行流程:判斷條件1,如果條件1為true,就執行語句塊1,語句塊1執行完,就執行多重if結構之後的語句;如果條件1為false,就判斷條件2,如果條件2為true,就執行語句塊2, 語句塊2執行完,就執行多重if結構之後的語句;如果條件2為false,就判斷條件3,如果條件3為true,就執行語句塊3,語句塊3執行完,就執行多重if結構之後的語句;如果條件3為false,就無條件執行最後else塊.

5.3:結構特點:
5.3.1:在多重if選擇結構中if塊有且僅有一個.
else-if塊可以有0個到多個.
else塊可以有0個到1個.
5.3.2:在多重if選擇結構中最多執行一個語句塊(一種分支),最少什麼都不執行.
5.3.3:用多重if選擇結構解決範圍(區間)判斷問題時,分支之間不一定能互換位置.
用多重if選擇結構解決等值判斷問題時,分支之間可以互換位置,不影響結果.

	eg:public static void main(String[] args){
	//獲得具有從鍵盤上接收資料的能力
	Scanner input=new Scanner(System.in);
	
	System.out.println("請輸入你的成績:");
	//從鍵盤上接收成績並存在變數中
	double score=input.nextDouble();
	//在Java中不支援 60<=score<=80這種寫法,60<=score&&score<=80
	if(score>=90){
		System.out.println("優秀");
	}else if(score>=80&&score<90){
		System.out.println("良好");
	}else if(score>=60&&score<80){
		System.out.println("合格");
	}else{
		System.out.println("再接再厲");
	}
}
				
	eg:public static void main(String[] args){
	//獲得具有從鍵盤上接收資料的能力
	Scanner input=new Scanner(System.in);
	
	System.out.println("請輸入今天是星期幾?(輸入1-7數字)");
	int today=input.nextInt();
	
	if(today==1){
		System.out.println("吃豆漿油條");
	}else if(today==6){
		System.out.println("手抓餅");
	}else if(today==2){
		System.out.println("小籠包");
	}else if(today==3){
		System.out.println("腸粉");
	}else if(today==4){
		System.out.println("麵包");
	}else if(today==5){
		System.out.println("煎餃");
	}else{
		System.out.println("睡覺");
	}
}

	題目:如果今天是星期一,就給媽媽打電話;如果今天是星期二,就給奶奶打電話;如果今天			是星期三就給姐姐打電話,如果今天是星期四就給朋友打電話.

6.巢狀選擇結構:在一個選擇結構的大括號中完整包含另一個選擇結構.

​ 特點:選擇結構之間可以任意巢狀,巢狀要正確.
​ 選擇結構可以巢狀多層,目前巢狀兩到三層居多.
​ eg:public static void main(String[] args){
​ //獲得具有從鍵盤上接收資料的能力
​ Scanner input=new Scanner(System.in);

	System.out.println("請輸入今天是星期幾?(輸入1-7數字)");
	int today=input.nextInt();
	if(today>=1&&today<=7){
		if(today==1){
			System.out.println("吃豆漿油條");
		}else if(today==6){
			System.out.println("手抓餅");
		}else if(today==2){
			System.out.println("小籠包");
		}else if(today==3){
			System.out.println("腸粉");
		}else if(today==4){
			System.out.println("麵包");
		}else if(today==5){
			System.out.println("煎餃");
		}else{
			System.out.println("睡覺");
		}
	}else{
		System.out.println("你的輸入有誤!");
	}
}

題目:參加百米賽跑,問你跑步時間,如果時間大12秒,謝謝參與,如果時間小於等於12秒,就進入決賽,再問你性別,如果性別是男,恭喜進入男子組決賽,如果性別是女,恭喜進入女子組決賽.

7.switch結構:解決多種情況的等值判斷問題.

​ 7.1:語法:switch(表示式){
​ case 值1:
​ 程式碼塊1;
​ break;
​ case 值2:
​ 程式碼塊2;
​ break;
​ ...
​ default:
​ default程式碼塊;
​ break;
​ }
​ 7.2:執行流程:判斷表示式結果等於case後面值1,就執行程式碼塊1,遇到break或結尾}就跳出 switch結構,執行之後語句;如果表示式結果等於case後面值2,就執行程式碼塊2, 遇到break或結尾}就跳出switch結構,執行之後語句;如果表示式結果不等於 case後面的任何一個值,就執行default程式碼塊遇到break或結尾}就
​ 跳出switch結構.
​ 7.3:結構特點:
​ 7.3.1:switch結構中,表示式的結果在jdk1.7之前只支援byte,short,int,long,char(枚 舉),在jdk1.7之後表示式還可以是String型別.
​ 7.3.2:在switch結構中,case可以有0個到多個,default可以有0個到1個.
​ 7.3.3:在同一個switch結構中,case後面的值不能相同.
​ 7.3.4:在switch結構,可以省略break,如果省略break,switch結構中表達式判斷滿足case 後面的值後,執行對應程式碼塊,執行完後,沒有break也沒有遇到結尾},不再判斷, 會一直執行下去,直到遇到break或結尾},才能跳出switch結構,這種現象 case貫穿.
​ 一般情況下,不建議大家省略break;
​ 7.3.5:在switch結構中,case塊之間可以互換位置,不影響結果;
​ default塊可以放在switch的大括號中任意位置,不影響結果.
​ 7.3.6:在switch結構中,最少執行0種情況,最多執行所有情況.
​ eg:public static void main(String[] args){
​ //獲得具有從鍵盤上接收資料的能力
​ Scanner input=new Scanner(System.in);

	System.out.println("請輸入今天是星期幾?(輸入1-7數字)");
	int today=input.nextInt();
	switch(today){
		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("你的輸入有誤!");
			break;
	}
}

	題目:如果今天是星期一,就給媽媽打電話;如果今天是星期二,就給奶奶打電話;如果今天			是星期三就給姐姐打電話,如果今天是星期四就給朋友打電話.

8.多重if VS switch

​ 8.1:相同點:
​ 8.1.1:都可以解決多種情況等值判斷問題.(首選switch結構)
​ 8.1.2:都可以執行0種情況.

8.2:不同點:
	8.2.1:多重if結構既可以解決多種情況等值判斷問題,也可以解決多種情況範圍(區間)判					斷問題;switch結構只能解決多種情況的等值判斷問題.
	8.2.2:switch結構的case塊(分支情況)可以互換位置,不影響結果;多重if結構在解決等				值判斷問題時分支間可以互換位置,不影響結果,但是在解決區間判斷問題時分				支間不一定可以互換位置.
	8.2.3:多重if結構最多執行一種分支情況;switch結構最多執行所有分支情況.
	8.2.4:多重if結構的條件的結果是boolean型別;switch結構的表示式的結果,在jdk1.7之				前只支援byte,short,int,long,char(列舉),在jdk1.7之後表示式還可以是					String型別.
	8.2.5:多重if結構中沒有break關鍵字;switch結構中可以有break關鍵字,它的作用是跳				出switch結構.
	8.2.6:多重if結構中每個條件可以寫一個判斷式子,也可以寫多個判斷式子只要式子間用				邏輯運算子連線;switch結構條件只能是一個式子.

9.區域性變數:在方法中宣告的變數都叫區域性變數.

​ 區域性變數不賦值是沒有值,就不能使用.
​ 區域性變數的作用範圍,僅在宣告它的大括號中有效.

總結:

1.資料型別比較
2.java執行結構
3.基本if選擇結構
4.if-else
5.多重if結構
6.巢狀選擇結構
7.switch結構
8.多重if VS switch
9.區域性變數的作用範圍