/*
-
运算符:就是用于对常量和变量进行操作的符号
-
表达式:用运算符连接起来的符合java语法的式子。不同的运算符连接的表达式是不同类型的表达式。
-
运算符的分类:算术用运算符,赋值运算符,关系运算符,逻辑运算符,三元运算符
1)算术运算符:+,-,*,/的基本使用
%:用于获取两个数相除时候的余数
/:用于获取两个数相除时候的商
+:做加法运算 (字符参与加法运算,其实就是拿字符在计算机中存储的数据值来参与运算的 ‘A’=65,‘a’=97,‘0’=48)
(字符串参与加法运算,不是加法运算,而是字符串的拼接)(但是当数值计算在字符串前面时,应先进行其自身的运算)
2)自增自减运算:
++:用于对变量加一,既可以用在变量的后面,也可以用在变量的前面
单独使用的时候,++或者–放在变量的前面或者后面,结果一样。
参与其他操作的时候:++在前面,先拿变量做操作,然后变量再++
++在后面,先变量++,然后再拿变量做操作
–:用于对变量减一
3)赋值运算符:
基本的赋值运算符:=
扩展的赋值运算符:+=,-=,/=,…
4)关系运算符:==,!=,>,>=,<,<=
关系运算符的结果是Boolean类型注意事项:千万不要把==写成=
5)逻辑运算符:&,|,^,! &&,||
&: 有false则false
|: 有true则true
^: 相同为flase,不同为true
!: ture则false,false则true
&&:同&,但是和&的区别是,&&有短路效果,左边为false,右边不执行。而&无论什么情况下两边都要执行
||:同|,与|的区别同上
6)三元运算符: 关系表达式?表达式1:表达式2;
执行流程:计算关系表达式的值,看是true还是false -> 如果是true,结果为表达式1;如果是false,结果为表达式2
*/
package com.HeMai;
public class OperatorDemo {
public static void main(String[] args) {
//定义变量
int a = 10;
int b = 6;
System.out.println(a + b);
System.out.println(a - b);
System.out.println(a * b);
System.out.println(a / b);
System.out.println(a % b);
//整数相除只能得到整数。要想得到小数,就必须有浮点数参与运算。
System.out.println(3.0 / 4);
System.out.println(3 / 4.0);
//字符参与加法运算
System.out.println("1) 字符参与加法运算 ");
char c = 'A';
System.out.println(a + c);
//字符串参与加法运算
System.out.println("2) 字符串参与加法运算 ");
System.out.println("hello" + a);
System.out.println("hello" + a + b);
System.out.println(a + b + "hello"); //先做加法运算,再做拼接运算
//++的演示
System.out.println("3) ++的演示 ");
a++;
++a;
System.out.println("a:" + a);
//++参与其他的操作
System.out.println("4) ++参与其他的操作 ");
//int x = a;
int x = a++;
int y = ++a;
System.out.println("a:" + a);
System.out.println("x:" + x);
System.out.println("y:" + y);
//赋值运算符
System.out.println(" 5) 赋值运算符 ");
int z = 10;//把10赋值给int类型的变量z
//+=的操作:拿+=的左边和右边的数据做加法,然后把结果赋值给左边
z += 20;
System.out.println("z:"+z);
//注意:扩展的赋值运算符,隐含了强制类型转换
//有一个变量a,a+=10;相当于 a = (a的数据类型)(a + 10);
short s = 1;
s +=1;
System.out.println(s);
//关系运算符
System.out.println("6) 关系运算符 ");
int a6 = 10;
int b6 = 20;
int c6 = 10;
//==
System.out.println("==");
System.out.println(a6 == b6);
System.out.println(a6 == c6);
//!=
System.out.println("!=");
System.out.println(a6 != b6);
System.out.println(a6 != c6);
//>
System.out.println(">");
System.out.println(a6 > b6);
System.out.println(a6 > c6);
//>=
System.out.println(">=");
System.out.println(a6 >= b6);
System.out.println(a6 >= c6);
//注意事项:
System.out.println("注意事项");
System.out.println(a6 == b6);
System.out.println(a6 = b6);//把b的值赋值给a,然后把a的值输出
//逻辑运算符
System.out.println("7) 逻辑运算符 ");
int a7 = 3;
int b7 = 4;
int c7 = 5;
//&
System.out.println("&");
System.out.println((a7>b7) & (a7>c7)); //f & f
System.out.println((a7<b7) & (a7>c7)); //t & f
System.out.println((a7>b7) & (a7<c7)); //f & t
System.out.println((a7<b7) & (a7<c7)); //t & t
//|
System.out.println("|");
System.out.println((a7>b7) | (a7>c7)); //f | f
System.out.println((a7<b7) | (a7>c7)); //t | f
System.out.println((a7>b7) | (a7<c7)); //f | t
System.out.println((a7<b7) | (a7<c7)); //t | t
//^
System.out.println("^");
System.out.println((a7>b7) ^ (a7>c7)); //f ^ f
System.out.println((a7<b7) ^ (a7>c7)); //t ^ f
System.out.println((a7>b7) ^ (a7<c7)); //f ^ t
System.out.println((a7<b7) ^ (a7<c7)); //t ^ t
//!
System.out.println("!");
System.out.println((a7>b7));
System.out.println(!(a7>b7));
System.out.println(!!(a7>b7));
//&&
System.out.println("&&");
System.out.println((a7>b7) && (a7>c7)); //f && f
System.out.println((a7<b7) && (a7>c7)); //t && f
System.out.println((a7>b7) && (a7<c7)); //f && t
System.out.println((a7<b7) && (a7<c7)); //t && t
//|
System.out.println("||");
System.out.println((a7>b7) || (a7>c7)); //f || f
System.out.println((a7<b7) || (a7>c7)); //t || f
System.out.println((a7>b7) || (a7<c7)); //f || t
System.out.println((a7<b7) || (a7<c7)); //t || t
//区别
System.out.println("&&和&的区别");
int x7 = 10;
int y7 = 20;
//System.out.println((x7++ > 10) & (y7++ > 20));//f & f
System.out.println((x7++ > 10) && (y7++ > 20));//f && f
System.out.println("x7:"+x7);
System.out.println("y7:"+y7);
//三元运算符
System.out.println("8) 三元运算符");
int a8 = 10;
int b8 = 20;
int c8 = (a8>b8)?a8:b8;
System.out.println("c8:"+c8);
//test:比较两个数是否相同?
System.out.println("testr--1");
boolean flag = (a8 == b8)?true:false;
//boolean flag = (a8 == b8);
System.out.println("flag:"+flag);
//test:获取三个整数的最大值:先获取两个数的最大值,然后再与第三个比较
System.out.println("testr--2");
int d8 = 30;
int temp = (a8 > b8)?a8:b8;
int max = (temp > d8)?temp:d8;
System.out.println("max:"+max);
}
}