java赋值运算符,算数运算符

1-------java表达式的值的左边值:java

a=3;  此赋值表达式的值为3;code

计算长串表达式的值的时候,注意从左往右计算。例如编译

public static void main(String[] args) {
  // TODO Auto-generated method stub
  int a=1;
  //int b=a+(a=2)+a+(a=3);
  int k=(a=a+(a+(a=2)+a)+a)+3;
  System.out.println(a);
  //System.out.println(b);
  System.out.println(k);
 } 
 
 //输出8,11.注意a的值常常改变

2,算术表达式class

int a=1;
  int b=2;
  int c=3;
  System.out.println(a+b+c); 
  //1,找a,2读+,3,找b同时读取后面+判断优先级。4进行运算计算结果和a相加
  
  
  int i=1;
  int j=2;
  int k=(i=3)+(j=4)+i*j;
  System.out.println(k);
  //结果输出19,前面的赋值语句先执行,以后的i*j语句执行的时候数据改变了。
  
  
  
  //a%b式子中,由a的符号决定结果的符号,两个数的绝对值提供结果的。
  //判断奇数和偶数,不能判断对于1的问题
public static boolean isOdd(int i){ 
return i % 2 != 0; 
}

3,i++和++i运算符变量

int i=1;
System.out.println(i+++i+++i++); 
//6


int i=1;
  System.out.println(i++ + ++i+i++ + ++i);
  //12

输出结果  6   拆分的时候从后往前拆分。即 i++  +   i++  +  i++  = 1+2+3=6.object

++必须是一个变量。im

 

4,关系运算符 ==数据

int a=10;
  int b=10;
  double c=10.0;
  //左边右边类型一致,直接比较
  System.out.println(a==b);
  //先将a的值提高为double类型,再比较
        System.out.println(a==c);   
        
        因此两个都是true

 

5,小数问题,和int类型赋值给byte类型会报错,由于会损失精读:static

 

 5;逻辑表达式 &的优先级高于|img

因此 true|flase&false  的结果是true

6:三目运算符;

int a=10;

  double b=5.0;

  System.out.println(a>b?a:b);

首先会类型转换。转化成double,三目运算表达式的值是 10.0

//int类型和boolean类型   只能转化为原始object类型   因此转化为obj类型了。
System.out.println(3>2?1:true);
  Object obj=3>2?1:true;
  System.out.println(obj);

 

7:注意赋值表达式:

 short i=1;
 //第一个表达式会报错,由于int不能赋值给int类型。直接编译不能经过了
  i=i+1;
  //第二个运算后的结果和左边的类型一致,因此它仍是short类型。
  i+=1;

8:注意赋值运算符是优先级最低的;

  int i=0;
  for(int j=0;j<10;j++){
   i=i++;
  }
  System.out.println(i);
  
  //输出的结果仍是0
相关文章
相关标签/搜索