day03 运算符和选择符号

1 常见的算术运算符有哪些?

+运算符的作用有哪些?
除法和取余的区别?
++和–的使用规则?

“ + - * / % ++ – ”

除法得到商 取余得到余数
独立运算 ++i i++结果一致
混合运算 ++i i++结果不一致

2 常见的赋值运算符有哪些?

+=运算的作用是什么?
扩展的赋值运算符有什么特点?

= += -+ *= /= %=
i += 2; 等价于 i = i + 2;
[扩展的赋值运算符隐含着强转(面试题)](https //blog.csdn.net/dingguanyi/article/details/80523585)

3 short s = 1; s = s + 1;有没有问题?如果有怎么解决?

short s = 1; s += 1;有没有问题?如果有怎么解决?

有 s += 1; 或者 s = (short)(s + 1)
没有
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MqUUc8Rv-1595927116911)(https //img-blog.csdnimg.cn/20200723153657308.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hlenVpaml1ZGV4aWFvYmFp,size_16,color_FFFFFF,t_70)]
原因:s+1的类想是int类型,将int类型的数据赋值给short类型的数据会有精度的丢失,故而报错
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XJgajdca-1595927116913)(https //img-blog.csdnimg.cn/20200723153831591.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hlenVpaml1ZGV4aWFvYmFp,size_16,color_FFFFFF,t_70)]
原因:s += 1 等价于 s = (byte) (s + 1),扩展的赋值运算符隐含了强制转换
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YchZsORK-1595927116915)(https //img-blog.csdnimg.cn/20200723154154197.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hlenVpaml1ZGV4aWFvYmFp,size_16,color_FFFFFF,t_70)]

4 常见的关系运算符有哪些? 《比较》

关系运算符的结果有什么特点?

== < > <= >= !=
按位运算 结果为布尔型

5 常见的逻辑运算符有哪些?

&和&&的区别是什么?
|和||的区别是什么?

&& || !
&& 会短路 符号左边是false,右边不再运算
|| 会短路 符号左边是true,右边不再运算

6 位运算符^的特点是什么?

按位异或
一个数据针对另一个数据位异或两次,该数不变

7 如何实现对两个整数变量的值进行互换

c = a
a = b
b = c

a = a ^ b
b = a ^ b
c = a ^ b

a = (a + b) - (b = a)
b = (a + b) - (a = b)

8 三元运算符的格式是什么?

执行流程是什么?

比较表达式?表达式1 表达式2;
首先计算比较表达式的值,判断true还是false
如果是true,表达式1就是结果
如果是false,表达式2就是结果

9 使用三元运算符完成如下练习

比较两个数是否相等
获取两个数中最大值
获取三个数中最大值

boolean result = (a == b) ? true false;
int result = (a > b) ? a b;
int temp = (a > b) ? a b;
int result = (temp > c) ? temp c;

10 流程控制语句有几种?

3种 顺序 选择 循环

11 if语句的格式有几种?注意事项是什么?分别在什么时候使用?

3种

  • 比较表达式无论简单还是复杂,结果是boolean类型
  • if语句控制的语句体如果是一条语句,是可以省略大括号的;如果是多条,不能省略
  • 建议:永远不要省略
  • 一般来说,有左大括号,就没有分号,有分号,就没有左大括号
  • else后面如果没有if,是不会出现比较表达式的
  • 三种if语句其实都是一个语句,只要有一个执行,其他的就不再执行

12 看程序写结果:请自己独立分析,先不要编译运行。

第一题

int x = 1,y = 1;

if(x++==2 & ++y==2)
{
	x =7;
}
System.out.println("x="+x+",y="+y);  

x=2,y=2


第二题

int x = 1,y = 1;

if(x++==2 && ++y==2)
{
	x =7;
}
System.out.println("x="+x+",y="+y);

x=2,y=1


第三题

int x = 1,y = 1;

if(x++==1 | ++y==1)
{
	x =7;
}
System.out.println("x="+x+",y="+y);

x=7,y=2


第四题

int x = 1,y = 1;

if(x++==1 || ++y==1)
{
	x =7;
}
System.out.println("x="+x+",y="+y);

x=7,y=1


第五题

boolean b = true;

if(b==false) 
	System.out.println("a");
else if(b)
	System.out.println("b");
else if(!b)
	System.out.println("c");
else
	System.out.println("d");

b


13 编写代码实现如下内容:if语句实现

考试成绩分等级。
90~100 A等。
80-89 B等。
70-79 C等。
60-69 D等。
60以下 E等。
请根据给定成绩,输出对应的等级。

public class Rank {
    public static void main(String[] args) {
        double x;
        x = 98;
        if(x >= 90 && x <=100) {
            System.out.println("A等");
        }else if(x >= 80 && x <=89) {
            System.out.println("B等");
        }else if(x >= 70 && x <=79) {
            System.out.println("C等");
        }else if(x >= 60 && x <=69) {
            System.out.println("D等");
        }else {
            System.out.println("E等");
        }
    }
}

14 把今天讲过的其他案例再练习一遍

猜你喜欢

转载自blog.csdn.net/hezuijiudexiaobai/article/details/107538746