Java面试(2)-- Java算数表达式

 1 class Demo02{
 2     public static void main(String[] args){
 3         //算数运算符 +,-,*,/,%,++,--
 4         
 5         //例1
 6         int a = 1;
 7         int b = 2;
 8         int c = 3;
 9         System.out.println(a+b+c);
10         //结果 6
11         /*
12             a+b+c的执行流程
13             1:去内存中找a对应的数据
14             2:读取下一个运算符
15             3:读取a后面的操作数b,同事尧都区b后面的运算符,看是否先运行。
16             4:计算a+b的结果
17             5:把a+b的结果和c进行相加即可
18         */
19         
20         
21         //例2
22         int a = 1;
23         int b = 2;
24         int c = 3;
25         int d = 4;
26         System.out.println(a+b+c*d);
27         //结果 15
28         /*
29             执行流程
30             1:先计算a+b的值
31             2:计算c*d
32             3:把a+b的值和c*d的值相加
33         */
34         
35         
36         //例3
37         int a = 1;
38         int b = 2;
39         System.out.println((a=3)+(b=4)+a*b);
40         //结果 19
41         
42         
43         //例4
44         //面试题:请设计一个表达式,用于判断一个数据是否是奇数
45         //System.out.println(5%2);
46         //System.out.println(5%-2);
47         //System.out.println(-5%2);
48         //System.out.println(-5%-2);
49         //结果1,1,-1,-1
50         //结论:%是由前面的操作数提供运算结果的符号
51         return (i%2!=0)
52         
53         
54         //例5
55         //++,--运算符
56         //int i = 1;
57         //i++; 是一个表达式,式子的值和i的值相同
58         //++i; 是一个表达式,式子的值是i+1以后的值
59         //++,--必须是一个变量
60         int i=1;
61         System.out.println(i+++i+++i+++i++);
62         //结果 10
63         // i++ + i++ + i++ + i++
64         // 1   + i++ + i++ + i++   i=2
65         // 1   + 2   + i++ + i++   i=3
66         // 1   + 2   + 3   + i++   i=4
67         // 1   + 2   + 3   + 4     i=5
68         
69         
70         //例6
71         int i=1; 
72         System.out.println(i++ + ++i + i++ + ++i);
73         //结果12
74         //如果写System.out.println(i+++++i+i+++++i);编译器会报错
75         
76         
77         //例7
78         int i=079         i=i++;
80         System.out.println(i);
81         //结果0
82         //i++作为表达式值为0,temp=0
83         //i=i+1; i=1;
84         //将temp赋值给i,i又变回为0
85     }
86 }

 

posted @ 2016-02-17 18:52  platycoden  阅读(536)  评论(0编辑  收藏  举报