Java(七)运算符

84 阅读4分钟

之前我们在学习的过程中,用到了变量之间的计算。接下来,我们来学习一下java中运算符相关的知识。

一:算数运算符

这玩意没什么难度,在其他语言中也是有的。

Java的算数运算符有:+  -  *  /  %  ++  --

下面,我们在代码中依次尝试一下:

1:+

加号在java中除了是算数运算符之外,他还是字符串的链接符,功能和javascript中的加号是一样的。

public static void main(String[] args)
{
double result;
int a = 10;
int b = 20;
// + 输出:30
result = a + b;
// + 作为链接符使用
String res = a + " + " + b + " = " + (a + b);
System.out.println(res);
System.out.println(result);
}

2:-

这个没什么可说的

public static void main(String[] args)
{
double result;
int a = 10;
int b = 20;
// - 输出:-10
result = a - b;
System.out.println(result);
}

3:*

这个没什么可说的

public static void main(String[] args)
{
double result;
int a = 10;
int b = 20;
// * 输出:200
result = a * b;
System.out.println(result);
}

4:/

这个需要注意一下,我在代码中定义的a和b的数据类型都是int整形。

整形除以整形得到的也只能是整形。这个要注意。

public static void main(String[] args)
{
double result;
int a = 10;
int b = 20;
// 输出:0 整形除以整形得到的也只能是整形
result = a / b;
System.out.println(result);
}

5:%

这个没啥说的

public static void main(String[] args)
{
double result;
int a = 10;
int b = 25;
// 输出 5
result = b % a;
System.out.println(result);
}

6:++

(1):单独使用

public static void main(String[] args)
{
int a = 10;
a++;
// 输出 11
System.out.println(a);
}

这么用没有什么特别需要注意的。

(2):参与运算

++在前:

int b = 10;
int c = ++b;
// 输出 11
System.out.println(c);
// 输出 11
System.out.println(b);

++在后

int b = 10;
int c = b++;
// 输出 10
System.out.println(c);
// 输出 11
System.out.println(b);

++在前是先运算后赋值,++在后是先赋值后运算

++中自带强制类型转换。

7:--

--运算符使用方式请参照++运算符使用方式。

  二:赋值运算符

赋值运算符说白了就是 = ,除了等号,赋值运算符还有 +=、-=、/=、*=、%=

赋值运算符自带强制类型转换。

用法就比较简单了,没什么太需要注意的位置。我们在代码中测试一下:

public static void main(String[] args)
{
double result;
int i = 10;
i += 10;
System.out.println(i); // 20-10;
System.out.println(i); // 10
i /= 10;
System.out.println(i); // 1
i *= 10;
System.out.println(i); // 10
i %= 10;
System.out.println(i); // 0
}

三:关系运算符

关系运算符都有:>、<、<=、>=、!=、==

这里没有什么特别需要注意的地方,我们来在代码中测试一下。

public static void main(String[] args)
{
int a = 10;
int b = 20;
System.out.println(a > b);// false
System.out.println(a < b);// true
System.out.println(a == b);// false
System.out.println(a != b);// true
System.out.println(a >= b);// false
System.out.println(a <= b);// true
}

四:逻辑运算符

逻辑运算符有以下几个:!(非) &(单与)|(单或)^(异或)&&(双与)||(双或)

这个没有为什么,记住结论就可以了

1:!(非)

/**
* @name 主方法
* @param args
*/
public static void main(String[] args)
{
System.out.println(!false); // true
System.out.println(!true); // false
System.out.println(!!false); // false
System.out.println(!!!false); // true
}

 

2:&(单与)

两边都是true,结果为true。有一个false,结果就是false。

/**
* @name 主方法
* @param args
*/
public static void main(String[] args)
{
System.out.println(true & true); // true
System.out.println(true & false); // false
System.out.println(false & false); // false
System.out.println(false & true); // false
}

 

3:|(单或)

/**
* @name 主方法
* @param args
*/
public static void main(String[] args)
{
System.out.println(true | true); // true
System.out.println(true | false); // true
System.out.println(false | false); // false
System.out.println(false | true); // true
}

两边只要有一个是true,结果为true。两个都是false,结果就是false。

 

4:^(异或)

/**
* @name 主方法
* @param args
*/
public static void main(String[] args)
{
System.out.println(true ^ true); // false
System.out.println(true ^ false); // true
System.out.println(false ^ false); // false
System.out.println(false ^ true); // true
}

两边相同为false,两边不同为true

  5:&&(双与)

/**
* @name 主方法
* @param args
*/
public static void main(String[] args)
{
System.out.println(true && true); // true
System.out.println(true && false); // false
System.out.println(false && false); // false
System.out.println(false && true); // false
}

使用结果如单&是一致的

6:||(双或)

/**
* @name 主方法
* @param args
*/
public static void main(String[] args)
{
System.out.println(true || true); // true
System.out.println(true || false); // true
System.out.println(false || false); // false
System.out.println(false || true); // true
}

使用结果如单|是一致的

 

那么现在就有一个小问题,单与双与,单或双或的区别是什么呢?

&&:如果左边为false,右边就不再执行了,结果就为false

&:如果左边为false,右边依然会执行,结果就为false

II:如果左边为true,右边就不再执行了,结果就为true

I:如果左边为true,右边依然会执行,结果就为true

 

从执行效率来讲,我们更推荐使用双与(&&)双或(||)运算符

 

这里先看到这,有好的建议,请在下方输入你的评论。