第一关:算数运算符
1、编程要求:
在start-end
区域定义两个变量a
和b
,然后使用上一章节学到的扫描仪(Scanner
)获取程序输入的数据并赋值给a
,b
变量,使程序能输出如下效果:
2、测试效果:
我会对你编写的代码进行若干次测试:
第一次测试会输入数据:10
,4
; 需要你的程序输出: 两数相加的结果为:14
两数相减的结果为:6
两数相乘的结果为:40
两数相除的结果为:2
两数取余数的结果为:2
第二次测试会输入数据:3
,5
; 需要你的程序输出: 两数相加的结果为: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("请输入第一个整数 "); a=sc.nextInt(); System.out.print("请输入第二个整数 "); 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、测试效果:
按照相关要求编写程序后,我会对你的程序进行测试。
预期输入:true
,false
,true
; 预期输出: 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、测试效果:
我会对你的程序进行若干次测试;
第一次输入:10
,2
预期输出: 24
2
28
第二次输入:5
,3
预期输出: 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