Day04
今天内容大部分在复习运算符的内容和分支语句练习题
复习运算符:
《运算符》
算术运算符: + - + - * / % (前)++ (后)++ (前)-- (后)-- +
【特别说明的】
1.(前)++ :先自增1,后运算
(后)++ :先运算,后自增1
2.(前)-- :先自减1,后运算
(后)-- :先运算,后自减1
3.连接符:+:只能使用在String与其他数据类型变量之间使用。
2.赋值运算符:+= -= *= /= %=
【特别说明的】
1.运算的结果不会改变变量本身的数据类型。
2.赋值运算符会自动进行类型转换和强制类型转换。
3.比较运算符(关系运算符): == != > < >= <= instanceof
【特别说明的】
1.比较运算符的结果是boolean类型
2.> < >= <= :只能使用在数值类型的数据之间。
3. == 和 != : 不仅可以使用在数值类型数据之间,还可以使用在其他引用类型变量之间。
Account acct1 = new Account(1000);
Account acct2 = new Account(1000);
boolean b1 = (acct1 == acct2);//比较两个Account是否是同一个账户。
boolean b2 = (acct1 != acct2);
4.逻辑运算符:& && | || ! ^
5.位运算符:<< >> >>> & | ^ ~
【特别说明的】
- 位运算符操作的都是整型的数据
<<:在一定范围内,每向左移1位,相当于 * 2
>>:在一定范围内,每向右移1位,相当于 / 2
【特别说明的】
1.逻辑运算符操作的都是boolean类型的变量。而且结果也是boolean类型
6.三元运算符:(条件表达式)? 表达式1 : 表达式2
【特别说明的】
- 说明
① 条件表达式的结果为boolean类型
② 根据条件表达式真或假,决定执行表达式1,还是表达式2.
如果表达式为true,则执行表达式1。
如果表达式为false,则执行表达式2。
③ 表达式1 和表达式2要求是一致的。
④ 三元运算符可以嵌套使用 - 凡是可以使用三元运算符的地方,都可以改写为if-else
反之,不成立。 - 如果程序既可以使用三元运算符,又可以使用if-else结构,那么优先选择三元运算符。原因:简洁、执行效率高。
Scanner使用方法:
1.添加类库:import java.util.Scanner;
2.Scanner的实例化:Scanner scan = new Scanner(System.in);
3.调用Scanner类的相关方法(next() / nextXxx());
打印引用API字段出现的问题:
1.当设置自己类型的值正常运行,当输入不同类型的字符会报错,回退到开始。
分支语句测试:
当出现问题,先思考逻辑分析该如何进行设计
1.if else如何使用进行判断
2.说明:如果if-else结构是可以相互嵌套的。
如果if-else结构中的执行语句只有一行是,对应的一对{}可以省略。但是,不建议大家 省略。
3.int value = ((int)Math.random()*90 + 10)//公式:[a,b]:(int)(Math.random() * (b - a + 1) + a ;
将if-else融合运算符使用:
练习1.我们先融合&、&&
class OperatorTest{
public static void main(String[] args){
boolean x = true;
boolean y = false;
if (z++ == 40) && (y = true) {
z++;
}
if ((x = false) || (++z == 43)) {
z++;
}
System.out.println("z = " + z);
}
}
打印结果: z = 44;
请你根据前面java基础知识学习的掌握总结来思考结果为什么是44。!!!这道题考验对前面知识的学习掌握程度!!!
练习2.定义三个int型变量并赋值,使用三元运算符或者if-else获取这三个数中的较大数的实现。
int num1 = 10,num2 = 21,num3 = -21;
int max;
if(num1 >= num2 && num1 >= num3){
max = num1;
}else if(num2 >= num1 && num2 > num3){
max = num2;
}else{
max = num3;
}
System.out.println("三个数中的最大值为:" + max);
这道题考验的是:三目运算符的熟练使用和分支语句的熟练使用,还有运算符&&、>=、>的使用熟练程度。
练习3.编写程序,声明2个double型变量并赋值,判断第一个数大于10.0,且第2个数小于20.0,打印两数之和。否则,打印两数的乘积。
double d1 = 12.3;
double d2 = 32.1;
if(d1 > 10.0 && d2 < 20.0){
System.out.println(" man = " + d1 + d2);
}else{
System.out.println(" man = " + d1 * d2);
}
这道题考验的是if-else判断逻辑的使用和理解。
练习4.交换两个变量的代码实现
String s1 = "雪碧";
String s2 = "可乐";
String temp = s1;//"雪碧"倒进了"空杯==temp"
String s1 = s2;"可乐"
String s2 = temp;"雪碧"
浙公网安备 33010602011771号