Java语言基础(3)

java

1 算术运算符:+,-,*(乘法),/(除法),%(求余数)
  1)只有相同类型的数据才可以进行算术运算,经常使用到自动类型转换和强制类型转换,把参与运算的数据转换为同一个类型,然后再进行算术运算。
    案例:Demo1

public class Demo1 {

public static void main(String[] args) {

int num1=100,num2=200;

int sum1 = num1+num2;

//num1,num2都是int类型,直接进行加法运算

System.out.println("sum1="+sum1);

int num3=10;

double num4=100.6;

double result = num4-num3;

//分析:首先num4是double,而num3是int,num3进行

//自动类型转换,由当前的int类型自动的转换为double

//类型(10--->10.0),然后执行减法运算,最后把

//运算的结果赋值给result(90.6)

System.out.println("result="+result);

int num5=100;

double num6=1.66;

double result2 = num5*num6;

//num5进行自动类型转换int--》double

// (100-->100.0)

System.out.println("result2="+result2);

int num7=100,num8=10;

int result3 = num7/num8;

System.out.println("result3="+result3);

int num9=10;

float num10=10.99f;

int result4 = num9+(int)num10;

// 10

System.out.println("result4="+result4);

}

}


  2)算术运算的结果跟参与运算数据的类型(统一类型)一致
    案例:Demo2

public class Demo2 {

public static void main(String[] args){

int num1=10,num2=4;

double result = num1/num2;

//分析:首先num1和num2都是int类型,所以算术运算

//结果也是int类型,结果是2,然后2进行自动类型转换,

//由当前的int类型自动的转换为double类型(2->2.0)

//最后把2.0赋值给result

System.out.println("result="+result);

}

}


  3)%:求出余数
    被除数 = 商 * 除数 + 余数
    余数 = 被除数 - 商 * 除数
    eg:
      int num1=10,num2=3;
      int result1=num1/num2; //3
      int result2=num1%num2; //1
      案例:Demo3

public class Demo3 {

public static void main(String[] args) {

int num1=10,num2=3;

int result1 = num1/num2;//3

System.out.println("result1="+result1);

int result2 = num1%num2;//1

System.out.println("result2="+result2);

int num3=100,num4=10;

int result3 = num3/num4;//10

System.out.println("result3="+result3);

int result4 = num3%num4;//0

System.out.println("result4="+result4);

}

}


    a)整除余数是0
    b)负数的余数,依然是负数(整除例外)
      案例:Demo4

public class Demo4 {

//负数的余数,依然是负数(整除例外)

public static void main(String[] args) {

int num1=-100,num2=3;

int result1 = num1/num2;//-33

System.out.println("result1="+result1);

int result2 = num1%num2;//-1

System.out.println("result2="+result2);

}

}


    eg:
      int num1=-10,num2=-3;
      int result = num1/num2; //3
      int result = num1%num2;
      余数 = 被除数 - 商*除数
         = -10 - (-3)*3
         = -10 - (-9)
         = -10 + 9
         = -1
    c)小数的余数,依然是小数
      案例:Demo5

public class Demo5 {

public static void main(String[] args) {

double num1=10.666;

int num2=10;

double result = num1%num2;//0.666

System.out.println("result="+result);

}

}

2 自增运算符:++
  1)变量的值和表达式的值
    eg:
      int a =100;
      变量a的值是100
      表达式a+1的值是101
  2)前置的自增:
    ++i:首先i先加1(i=i+1),然后把i当前的值作为++i整个表达式的值
    eg:
      int num=10;
      int result = ++num;
      分析:首先num=num+1(11),然后把num当前的值作为++num整个表达式的值(11),最后把++num表达式的值(11)赋值给变量result(11)
    案例:Demo6

public class Demo6 {

//++i:首先i=i+1,然后把i加完以后的值作为++i整个

//表达式的值。

public static void main(String[] args) {

int num = 100;

int result = ++num;

//分析:首先num=num+1(101),然后把num当前的值

//作为++num整个表达式的值(101),最后把++num

//表达式的值赋值给result(101)

System.out.println("num="+num);

System.out.println("result="+result);

}

}

//Demo7:

//int num = 10;

//int sum = ++num + ++num + ++num;

//sum = ?

public class Demo7 {

public static void main(String[] args) {

int num = 10;

int sum = ++num + ++num + ++num;

// 11 12 13

// 变量 表达式

//第1个表达式:11 11

//第2个表达式:12 12

//第3个表达式:13 13

System.out.println(sum);

}

}

//Demo8

//int num=100;

//int sum = ++num + ++num + ++num + ++num?

//sum = ?

public class Demo8 {

public static void main(String[] args) {

int num=100;

int sum = ++num + ++num + ++num + ++num;

// 101 102 103 104

// 变量 表达式

//第1个表达式: 101 101

//第2个表达式: 102 102

//第3个表达式: 103 103

//第4个表达式: 104 104

System.out.println(sum);

}

}


  3)后置的自增:
    i++:首先把i当前的值作为i++整个表达式的值,然后i再加1(i=i+1)
    eg:
      int num=100;
      int result = num++;
      分析:首先把num当前的值作为num++整个表达式的值(100),然后num=num+1(101),最后把num++表达式的值(100)赋值给result
    案例:Demo9

public class Demo9 {

//i++:首先把i当前的值作为i++整个表达式的值,然后

//i=i+1

public static void main(String[] args) {

int num = 1000;

int result = num++;

//分析:首先把num当前的值作为num++整个表达式的值

//(1000),然后num=num+1(1001),最后把num++

//表达式的值赋值给result

System.out.println("num="+num);

System.out.println("result="+result);

}

}

//Demo10

//int num = 100;

//int sum = num++ + num++ + num++;

//sum = ?

public class Demo10 {

public static void main(String[] args) {

int num = 100;

int sum = num++ + num++ + num++;

// 100 101 102

// 变量 表达式

//第1个表达式: 101 100

//第2个表达式: 102 101

//第3个表达式: 103 102

System.out.println(sum);

}

}

//Demo11

//int num=10;

//int sum = ++num + ++num + num++ + num++;

//sum = ?

public class Demo11 {

public static void main(String[] args) {

int num=10;

int sum = ++num + ++num + num++ + num++;

// 11 12 12 13

// 变量 表达式

//第1个表达式: 11 11

//第2个表达式: 12 12

//第3个表达式: 13 12

//第4个表达式: 14 13

System.out.println(sum);

}

}

3 自减运算符:--
  1)前置自减:
    --i:首先i=i-1,然后把i当前的值作为--i整个表达式的值。
    eg:
      int num = 10;
      int result = --num;
      分析:首先num=num-1(9),然后把num当前的值(9)作为--num整个表达式的值(9),最后把--num表达式的值赋值给result(9)
    案例:Demo12

public class Demo12 {

//--i:首先i=i-1,然后把i减完以后的值作为--i整个

//表达式的值

public static void main(String[] args) {

int num = 1000;

int result = --num;

//首先num=num-1(999),然后把num当前的值(999)

//作为--num整个表达式的值(999),最后把--num

//表达式的值赋值给result(999)

System.out.println("num="+num);

System.out.println("result="+result);

}

}

//Demo13

//int num = 100;

//int sum = --num + --num + --num;

//sum = ?

public class Demo13 {

public static void main(String[] args) {

int num = 100;

int sum = --num + --num + --num;

// 99 98 97

// 变量 表达式

//第1个表达式: 99 99

//第2个表达式: 98 98

//第3个表达式: 97 97

System.out.println(sum);

}

}

//Demo14

//int num=100

//int sum = num++ + num++ + --num + --num;

//sum = ?

public class Demo14 {

public static void main(String[] args) {

int num = 100;

int sum = num++ + num++ + --num + --num;

// 100 101 101 100

// 变量 表达式

//第1个表达式: 101 100

//第2个表达式: 102 101

//第3个表达式: 101 101

//第4个表达式: 100 100

System.out.println(sum);

}

}

  2)后置自减:
    i--:首先把i当前的值作为i--整个表达式的值,然后i=i-1
    eg:
      int num = 100;
      int result = num--;
      分析:首先把num当前的值作为num--整个表达式的值(100),然后num=num-1(99),最后把num--整个表达式的值赋值给result(100)
    案例:Demo15

public class Demo15 {

//i--:首先把i当前的值作为i--整个表达式的值,然后

//i=i-1

public static void main(String[] args) {

int num = 10;

int result = num--;

//分析:首先把num当前的值作为num--整个表达式的值

//(10),然后num=num-1(9),最后把num--表达式的值

//赋值给result

System.out.println("num="+num);

System.out.println("result="+result);

}

}

//Demo16:

//int num = 100;

//int sum = --num + --num + num--;

public class Demo16 {

public static void main(String[] args) {

int num = 100;

int sum = --num + --num + num--;

// 99 98 98

// 变量 表达式

//第1个表达式: 99 99

//第2个表达式: 98 98

//第3个表达式: 97 98

System.out.println(sum);

}

}

//Demo17

//int num=100;

//int sum = num++ + num++ + num-- + num--;

//sum = ?

public class Demo17 {

public static void main(String[] args) {

int num = 100;

int sum = num++ + num++ + num-- + num--;

// 100 101 102 101

// 变量 表达式

//第1个表达式: 101 100

//第2个表达式: 102 101

//第3个表达式: 101 102

//第4个表达式: 100 101

System.out.println(sum);

}

}

//Demo18

//int num = 100;

//int sum = ++num + num++ + --num + num--;

//sum = ?

public class Demo18 {

public static void main(String[] args) {

int num = 100;

int sum = ++num + num++ + --num + num--;

// 101 101 101 101

// 变量 表达式

//第1个表达式: 101 101

//第2个表达式: 102 101

//第3个表达式: 101 101

//第4个表达式: 100 101

System.out.println(sum);

}

}

  总结:
    无论前置自增还是后置自增,变量都会加1,不同仅仅只是表达式的值。
    无论前置自减还是后置自减,变量都会减1,不同仅仅只是表达式的值。

4 复合赋值运算符:+=,-=,*=,/=,%=
  eg:
    int num=100;
    num += 10; // num = num+10
    num -= 20; // num = num-20
    num *= 100; // num = num*100
    num /=10; // num = num/10

    int num2=200;
    num += num2-100; // num = num+(num2-100)
    num /= num2+100; // num = num / (num2+100)
    num %= num2/100; // num = num % (num2/100)
  案例:Demo19

public class Demo19 {

//复合赋值运算符:+=,-=,*=,/=,%=

public static void main(String[] args) {

int num1=100;

// num1 += 200; //num1=num1+200

// System.out.println(num1);

// num1 *= 10; //num1=num1*10

// System.out.println(num1);

int num2=200;

// num1 -= num2/100;

// num1 = num1 - (num2/100)

// System.out.println(num1);

num1 /= num2/100;

// num1 = num1 / (num2/100)

System.out.println(num1);

}

}

5 关系运算符: >,>=(大于或者等于),<,<=(小于或者等于),==(等于),!=(不等于)
  1)关系表达式:使用关系运算符连接的表达式,称为关系表达式,关系表达式最终必须返回一个boolean类型结果,要么true,要么false。
    eg:
      int num1=100,num2=200;
      boolean result1 = num1>num2;  //false
    案例:Demo20

public class Demo20 {

public static void main(String[] args) {

int num1=100,num2=500;

boolean result1 = num1==num2;

// false

System.out.println("result1="+result1);

boolean result2 = num1!=num2;

// true

System.out.println("result2="+result2);

boolean result3 = num1>num2;

// false

System.out.println("result3="+result3);

boolean result4 = num1<=num2;

// true

System.out.println("result4="+result4);

}

}


  2)运算符的优先级:
    算术运算符>关系运算符>赋值运算符
    eg:
      int num1=100,num2=200;
      boolean result = (num1-50)*3+100>=num2;
            算术     50 *3 +100>=num2
                    250>=num2
            关系                   true
            赋值 把true赋值给result
    案例:Demo21

public class Demo21 {

//运算符优先级:算术运算符>关系运算符>赋值运算符

public static void main(String[] args) {

int num1=100,num2=200,num3=1000;

boolean result =

(num1*4+200)*2-num2 >= num3;

//算术 (400+200)*2-num2 >= num3

// 600*2-num2 >= num3

// 1200-200 >= num3

// 1000 >= num3

//关系 true

//赋值 把true赋值给result

System.out.println("result="+result);

}

}

以上是 Java语言基础(3) 的全部内容, 来源链接: utcz.com/z/391820.html

回到顶部