Educoder - Java入門 - 運算符和表達式各關卡題目總結


第一關:算數運算符

1、編程要求:

  在start-end區域定義兩個變量ab,然后使用上一章節學到的掃描儀(Scanner)獲取程序輸入的數據並賦值給ab變量,使程序能輸出如下效果:

 

2、測試效果:

  我會對你編寫的代碼進行若干次測試:

  第一次測試會輸入數據:10,4; 需要你的程序輸出: 兩數相加的結果為:14 兩數相減的結果為:6 兩數相乘的結果為:40 兩數相除的結果為:2 兩數取余數的結果為:2

  第二次測試會輸入數據:35; 需要你的程序輸出: 兩數相加的結果為:8 兩數相減的結果為:-2 兩數相乘的結果為:15 兩數相除的結果為:0 兩數取余數的結果為:3

 

3、程序實現:

package step1;
import java.util.Scanner;

public class Cal {
    public static void main(String[] args) {
        /*********start*********/
        Scanner sc= new Scanner(System.in);
        int a,b;
        System.out.print("請輸入第一個整數\n");
        a=sc.nextInt();
        System.out.print("請輸入第二個整數\n");
        b=sc.nextInt();
        System.out.println("兩數相加的結果為:"+(a+b));
        System.out.println("兩數相減的結果為:"+(a-b));
        System.out.println("兩數相乘的結果為:"+(a*b));
        System.out.println("兩數相除的結果為:"+(a/b));
        System.out.println("兩數取余數的結果為:"+(a%b));
        sc.close();
        
        
        /*********end*********/
    }

}

 

 4、題目總結:

 (1)注意自增自減運算符的位置,在變量前表示先執行自增或者自減操作,后將自增自減之后的值賦給左邊的新變量。在變量后則反之。

 

 

第二關:關系運算符

1、編程要求:

  使用本關所學的關系運算符,在start-end區域實現程序的輸出,預期的輸出請查看測試說明。

 

2、測試效果:

  我會對你編寫的代碼進行若干次測試:

  第一次測試會輸入數據:20,34; 需要你的程序輸出: a==b=false a!=b=true a>b=false a<b=true b>=a=true b<=a=false

  第二次測試會輸入數據:-8,-18; 需要你的程序輸出: a==b=false a!=b=true a>b=true a<b=false b>=a=false b<=a=true

 

3、程序實現:

package step2;
import java.util.Scanner;

public class Relative {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        
      
        /*********start*********/        
        int a=sc.nextInt();
        int b=sc.nextInt();
        System.out.println("a==b="+(a==b));
        System.out.println("a!=b="+(a!=b));
        System.out.println("a>b="+(a>b));
        System.out.println("a<b="+(a<b));
        System.out.println("b>=a="+(b>a));
        System.out.println("b<=a="+(b<a));
        /*********end*********/
    }

}

 

4、題目總結:

 (1)記憶小技巧:無論是大於等於還是小於等於,等號總在大於號或者小於號的右邊。

 (2)關系運算符得到的都是布爾值。

 

 

第三關:邏輯運算符

1、編程要求:

  目前程序的輸出不符合預期,使用本小節所學知識,在start-end區域中修改代碼,實現程序預期的輸出,預期輸出請查看測試說明。

 

2、測試效果:

  按照相關要求編寫程序后,我會對你的程序進行測試。

  預期輸入:truefalsetrue; 預期輸出: false false true true

  預期輸入:true,false,false; 預期輸出: false false false true

 

3、程序實現:

package step3;
import java.util.Scanner;



public class testLogic {
    public static void main(String[] args) {
        
        Scanner sc=new Scanner(System.in);
          boolean a=sc.nextBoolean();
        boolean b=sc.nextBoolean();
        boolean c=sc.nextBoolean();
        
        /*********start  *********/
        
        System.out.println(!a);    
        
        System.out.println(a && b);  
        
        System.out.println( c || b );    
        
        System.out.println( a^b  );        
        /*********end  *********/
    }

}

 

4、題目總結

 (1)& 和 &&區別:

     & :無論左邊結果是什么,右邊都參與運算。

             &&(短路):如果左邊為false,那么右邊不參數與運算。

    (2)| 和|| 區別:

     |:兩邊都運算。

             ||(短路):如果左邊為true,那么右邊不參與運算。

 (3)邏輯運算符操作的都是boolean類型變量。

 

 

第四關:三元運算符

1、編程要求:

  在start-end區域中補充代碼,使用三元運算符判斷輸入的year變量是否為閏年,為了完成判斷是否為閏年,你需要首先了解閏年的判斷公式是什么,在這里給出閏年的判斷公式如下:

  1.年份能被400整除。

  2.年份能被4整除,但不能被100整除。 所以,在這里你還需要注意邏輯關系運算符的運用。

 

2、測試效果:

  測試輸入:2012 預期輸出:2012是否為閏年:true

  測試輸入:2013 預期輸出:2013是否為閏年:false

 

3、程序實現:

package step4;

import java.util.Scanner;

public class TestYear {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        int year=sc.nextInt();
        boolean result;
        /********start********/
        
        result=((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) ? true : false;
        
        System.out.println(year + "年是否為閏年:" + result);
        
        /********end********/
    }

}

 

4、題目總結:

 (1)注意三元運算符的運用格式:條件表達式 ? 條件為真返回的結果 : 條件為假返回的結果

 (2)三元運算符有時可以代替if-else語句使用(三元運算符一定會有返回值,三元運算符的運算性能高於if-else語句,有些特定情況下只能使用三元運算符)

 

 

第五關:運算符的優先級

1、編程要求:

  現在運行start-end區域中的代碼,輸出結果和效果圖是不一致的,需要你修改Begin-End區域內代碼,使你的程序輸出如下效果:

 

2、測試效果:

  我會對你的程序進行若干次測試;

  第一次輸入:102 預期輸出: 24 2 28

  第二次輸入:53 預期輸出: 16 2 17

 

3、程序實現:

package step5;
import java.util.Scanner;

public class TestDemo5 {
    public static void main(String[] args) {
            Scanner sc=new Scanner(System.in);
        System.out.println("輸入:");
        int m=sc.nextInt();
        int n=sc.nextInt();
        
        System.out.println("輸出:");
        
        /*****start*****/
        
        System.out.println( (m+n)*2 );
        
        System.out.println( (m-n)%3 );
        
        System.out.println((m-n)/2 + (m+n)*2);
        
        /*****end*****/
    }

}

 

4、題目總結:

 (1)

    

 

 (2)注意靈活運用括號,畢竟括號內的運算都是優先執行。

 

 

第六關:選擇自測題

 1、選擇題答案:D  B  A  C  C  A  A  

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM