計算點到直線/線段的距離
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.區域性變數的作用範圍