JAVA-2.1-邏輯運算符、關係運算符、if語句及switch語句

寫出下面程序的運行結果
1、

int x = 1,y = 1;//定義變量x,y,並對其分別進行初始值化
if(x++==2 & ++y==2)
/** x++先取值操作,再自增
    ++y先自增,後取值操作
    ①x值爲1
    ②判斷x==2是否成立,false
    ③x值自增1,即x值爲2
    ④運行到到&,繼續執行++y==2
    ⑤y自增1,即y值爲2
    ⑥判斷y==2是否成立,true
    ⑦if(比較表達式)中比較表達式結果(false & true),結果爲false,則不執行循環體
*/
{
    x =7;
}//不執行循環體
System.out.println("x="+x+",y="+y);//x=2,y=2

2、

int x = 1,y = 1;//定義變量x,y,並對其分別進行初始值化
if(x++==2 && ++y==2)
/** ①x值爲1
    ②判斷x==2是否成立,false
    ③x值自增1,即x值爲2
    ④運行到到&&,發現只要x++==2爲false就不再執行++y==2(即短路效果),直接得出if(比較表達式)中比較表達式結果爲false,則不執行循環體
*/
{
    x =7;
}//不執行循環體
System.out.println("x="+x+",y="+y); //x=2,y=1

3、

int x = 1,y = 1;//定義變量x,y,並對其分別進行初始值化
if(x++==1 | ++y==1)
/**  x++先取值操作,再自增
     ++y先自增,後取值操作
     ①x值爲1
     ②判斷x==1是否成立,true
     ③x值自增1,即x值爲2
     ④運行到到|,繼續執行++y==1
     ⑤y自增1,即y值爲2
     ⑥判斷y==1是否成立,false
     ⑦if(比較表達式)中比較表達式結果(true | false),結果爲true,則繼續執行循環體
*/
{
    x =7;//把7賦值給x
}
System.out.println("x="+x+",y="+y);//x=7,y=2

4、

int x = 1,y = 1;//定義變量x,y,並對其分別進行初始值化
if(x++==1 || ++y==1)
/** ①x值爲1
    ②判斷x==1是否成立,true
    ③x值自增1,即x值爲2
    ④運行到到||,發現只要x++==2爲true就不再執行++y==2(即短路效果),直接得出if(比較表達式)中比較表達式結果爲true,則繼續執行循環體
*/
{
    x =7;//把7賦值給x
}
System.out.println("x="+x+",y="+y);//x=7,y=1

總結1  關係運算符:
  ==,!=,>,>=,<,<=
  注意:
    A:比較運算符的結果肯定是boolean。
    B:你到底是使用”=”還是使用”==”,你自己要清楚。

總結2 邏輯運算符:
  &,|,!,^
  &&,||
  注意:
    邏輯運算符用於連接關係表達式
  結論:
    &: 有false則false
    |: 有true則true
    !:改變結果,取反
    ^:相同false,不同true
      記憶:情侶關係(男男,男女,女男,女女)

  最常用的邏輯運算符  !,&&,||
    &&和&:結果一樣,但是&&具有短路效果,左邊如果是false,右邊不執行。
    ||和|:結果一樣,但是||具有短路效果,左邊如果是true,右邊不執行。

5、

boolean b = true;//定義布爾型變量b,並初始化爲true
if(b=false)//把false賦值給b,比較表達式結果爲false,不執行循環體
    {
        System.out.println("a");
    }
else if(b)//比較表達式結果爲false,不執行循環體
    {
        System.out.println("b");
    }
else if(!b)//b爲false,!b爲true,比較表達式結果爲true,執行循環體
    {
    System.out.println("c");//輸出c
    }
else//不再執行
    System.out.println("d");//不再執行

總結3 if語句

if語句格式1:
  if(比較表達式) {
     語句體
   }
  執行流程:
    首先判斷比較表達式看其結果是true還是false
    如果是true就執行語句體
    如果是false就不執行語句體
    
if語句格式2:
  if(比較表達式) {
    語句體1;
  }else {
    語句體2;
  }
  執行流程:
    首先判斷關係表達式看其結果是true還是false
    如果是true就執行語句體1
    如果是false就執行語句體2
    
if語句格式3:
  if(比較表達式1) {
    語句體1;
  }else if (比較表達式2) {
      語句體2;
  }
  …
  else {
       語句體n+1;
  }
  執行流程:
    首先判斷關係表達式1看其結果是true還是false
    如果是true就執行語句體1
    如果是false就繼續判斷關係表達式2看其結果是true還是false
    如果是true就執行語句體2
    如果是false就繼續判斷關係表達式…看其結果是true還是false
    …
    如果沒有任何關係表達式爲true,就執行語句體n+1。

if語句的三種格式:
  格式1:適合做一種情況的判斷
  格式2:適合做二種情況的判斷
  格式3:適合做多種情況的判斷

if語句的注意事項:
  A:比較表達式無論簡單還是複雜,結果必須是boolean類型
  B:一般來說:有左大括號就沒有分號,有分號就沒有左大括號
  
6、

int x = 2,y=3;//定義變量x,y,並對其分別進行初始值化
switch(x)
{
    default:
        y++;
    case 3:
        y++;
        break;
    case 4:
        y++;
}
/** ①x的值爲2,尋找case中的對應值
    ②發現並沒有case 2,那麼執行default語句y++,此時y的值變作4
    ③default語句的最後沒有break,則繼續往下執行
    ④進行到case 3執行y++,此時y的值變作5,遇到break,switch語句結束
*/
System.out.println("y="+y);//y=5

總結4 switch語句:
switch語句的格式:
  switch(表達式) {
    case 值1:
         語句體1;
         break;
    case 值2:
         語句體2;
         break;
    …
    default:
         語句體n+1;
         break;
  }
  
格式解釋:
  A:switch表示這是switch語句
  B:表達式
    表達式的取值:byte,short,int,char
    JDK5以後可以是枚舉
    JDK7以後可以是String
  C:case後面跟的是要和表達式進行比較的值
  D:語句體部分可以是一條或多條語句
  E:break表示中斷,結束的意思,可以結束switch語句
  F:default語句表示所有情況都不匹配的時候,就執行該處的內容,和if語句的else相似。
  
執行流程:
  首先計算出表達式的值。
  其次,和case依次比較,一旦有對應的值,就會執行相應的語句,在執行的過程中,遇到break就會結束。
  最後,如果所有的case都和表達式的值不匹配,就會執行default語句體部分,然後程序結束掉。

switch語句的注意事項:
  A:case後面只能是常量,不能是變量。
  B:多個case後面的值不能出現相同的。
  C:default可以省略嗎?
    可以。但是不建議。
  D:break可以省略嗎?
    可以。但是不建議。容易出現case穿透。
  E:default的位置一定要在最後嗎?
    可以在任意位置,建議在最後。
  F:switch語句的結束條件
    a:遇到break
    b:執行到末尾

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