java基础语法运算符
1.1 算数运算符++、--的使用
在一般情况下,算数运算符不会改变参与计算的变量值。而是在原有变量值不变的情况下,计算出新的值。但是有些操作符会改变参与计算的变量的值,比如++,--。
我们来看一段代码:
int a = 3;
int b = 3;
a++;
b--;
System.out.println(a);
System.out.println(b);
上面代码的输出结果a值为4,b值为2;
这说明a的原有值发生了改变,在原有值的基础上自增1;b的原有值也发生了改变,在原有值的基础上自减1;
l ++运算符,会在原有值的基础上自增1;
l --运算符,会在原有值的基础上自减1。
我们再看一段代码:
++,--运算符参与运算操作时,发生了怎样的变化,我们来看一段代码:
int a = 3;
int b;
b = a++ + 10;
System.out.println(a);
System.out.println(b);
上面代码的输出结果a值为4,b值为13;
总结:
++,--运算符后置时,先使用变量a原有值参与运算操作,运算操作完成后,变量a的值自增1或者自减1;
再介绍下++,--运算符前置时,参与运算操作的变化,我们来看一段代码:
int a = 3;
int b;
b = ++a + 10;
System.out.println(a);
System.out.println(b);
上面代码的输出结果a值为4,b值为14;
这里我强调一下,当++,--运算符参与运算操作时,前置++,--的作用:
++,--运算符前置时,先将变量a的值自增1或者自减1,然后使用更新后的新值参与运算操作。
1.2 赋值运算符
|
运算符 |
运算规则 |
范例 |
结果 |
|
= |
赋值 |
int a=2 |
2 |
|
+= |
加后赋值 |
int a=2,a+=2 |
4 |
|
-= |
减后赋值 |
int a=2,a-=2 |
0 |
|
*= |
乘后赋值 |
int a=2,a*=2 |
4 |
|
/= |
整除后赋值 |
int a=2,a/=2 |
1 |
|
%= |
取模后赋值 |
int a=2,a%=2 |
0 |
首先:我们看下面的错误代码
public class OperatorDemo3
{
public static void main(String[] args){
byte x=10;
byte y=x+20;
System.out.printIn(y)
} }
因为上面是byte+20结果应该为Int类型,但是直接写成byte类型了,没有强制转换。
如果用赋值运算符后,就会将结果自动强制转换数据类型,下面便是:
注意:诸如+=这样形式的赋值运算符,会将结果自动强转成等号左边的数据类型。
写一个代码,我们看一下赋值运算符的使用
/*
* 赋值运算符
* +=, -=, *=, /=, %= :
* 上面的运算符作用:将等号左右两边计算,会将结果自动强转成等号左边的数据类型,再赋值给等号左边的
* 注意:赋值运算符左边必须是变量
*/
public class OperatorDemo2 {
public static void main(String[] args) {
byte x = 10;
x += 20;// 相当于 x = (byte)(x+20);
System.out.println(x);
}
}
运行结果为30.
1.3 逻辑运算符
逻辑运算符,它是用于布尔值进行运算的,运算的最终结果为布尔值true或false。
|
运算符 |
运算规则 |
范例 |
结果 |
|
& |
与 |
false&true |
False |
|
| |
或 |
false|true |
True |
|
^ |
异或 |
true^flase |
True |
|
! |
非 |
!true |
Flase |
|
&& |
短路与 |
false&&true |
False |
|
|| |
短路或 |
false||true |
True |
看完图后,我们来看一下逻辑运算符的常规使用方式:
^:两边不相同为true,否则为false
l 短路与&&:参与运算的两边数据,有false,则运算结果为false;
l 短路或||:参与运算的两边数据,有true,则运算结果为true;
l 逻辑非! : 参与运算的数据,原先是true则变成false,原先是false则变成true。
短路的作用是一边又false,另一边不执行。提高效率
1.4 三元运算符
l 格式:
(条件表达式)?表达式1:表达式2;
通过代码演示,我们来学习下三元运算符的使用:
方式一:
System.out.println( 3>2 ? “正确” : “错误” );
// 三元运算符运算后的结果为true,运算结果为表达式1的值“正确”,然后将结果“正确”,在控制台输出打印 方式二:
int a = 3;
int b = 4;
String result = (a==b) ? “相等” : “不相等”;
//三元运算符运算后的结果为false,运算结果为表达式2的值“不相等”,然后将结果赋值给了变量result 方式三:
int n = (3>2 && 4>6) ? 100 : 200;
//三元运算符运算后的结果为false,运算结果为表达式2的值200,然后将结果200赋值给了变量n
我们看一下复杂的代码:
int a = 5;
int b = 3;
int c = 1;
int n2 = (a>b && b>c) ? (c++) : (++c);
这段代码运算执行顺序我们也写一下:
l 1.小括号优先级高,我们先运算第一组小括号中的代码
l 1.1. 比较运算符”>” 优先级大于 逻辑运算符”&&”
n 先执行 a>b,得到结果true;
n 再执行 b>c,得到结果true;
n 最后执行 a>b的结果 && b>c的结果,即 true && true, 结果为true
l 2.三元运算符中的条件判断结果为true,返回表达式1的结果 c++
n 先将变量c的原有值赋值给变量n2,即n2值为1;
n 再将变量c的值自增1,更新为2。
结果是n2=1;c=2;
java基础语法运算符的更多相关文章
- Java基础语法-运算符
1算术运算符 1.1运算符和表达式 运算符:对常量和变量进行操作的符号. 表达式:用运算符把常量或者变量连接起来符合java语法的式子就可以称为表达式. 不同运算符链接的表达式体现的是不同类型的表达式 ...
- JavaSE入门学习6:Java基础语法之运算符和语句(上)
继续接着上篇:JavaSE入门学习5:Java基础语法(一)来看Java的基础语法. 五运算符 运算符是一种"功能"符号,用以通知Java进行相关的运算.比方.我们须要将变量age ...
- JAVA学习(三):Java基础语法(变量、常量、数据类型、运算符与数据类型转换)
Java基础语法(变量.常量.数据类型.运算符与数据类型转换) 1.变量 Java中.用户能够通过指定数据类型和标识符来声明变量.其基本的语法为: DataType identifier; 或 Dat ...
- Java基础语法(3)-运算符
title: Java基础语法(3)-运算符 blog: CSDN data: Java学习路线及视频 1.算术运算符 算术运算符的注意问题 如果对负数取模,可以把模数负号忽略不记,如:5%-2=1. ...
- 033 01 Android 零基础入门 01 Java基础语法 03 Java运算符 13 运算符和表达式知识点总结
033 01 Android 零基础入门 01 Java基础语法 03 Java运算符 13 运算符和表达式知识点总结 本文知识点:运算符和表达式知识点总结 前面学习的几篇文都是运算符和表达式相关的知 ...
- 032 01 Android 零基础入门 01 Java基础语法 03 Java运算符 12 运算符和if-else条件语句的综合案例——闰年问题
032 01 Android 零基础入门 01 Java基础语法 03 Java运算符 12 运算符和if-else条件语句的综合案例--闰年问题 本文知识点:运算符和if-else条件语句的综合案例 ...
- 031 01 Android 零基础入门 01 Java基础语法 03 Java运算符 11 运算符的优先级
031 01 Android 零基础入门 01 Java基础语法 03 Java运算符 11 运算符的优先级 本文知识点:Java中运算符的优先级 运算符的优先级问题 前面学习了很多的运算符,如果这些 ...
- 030 01 Android 零基础入门 01 Java基础语法 03 Java运算符 10 条件运算符
030 01 Android 零基础入门 01 Java基础语法 03 Java运算符 10 条件运算符 本文知识点:Java中的条件运算符 条件运算符是Java当中唯一一个三目运算符 什么是三目运算 ...
- 029 01 Android 零基础入门 01 Java基础语法 03 Java运算符 09 逻辑“非”运算符
029 01 Android 零基础入门 01 Java基础语法 03 Java运算符 09 逻辑"非"运算符 本文知识点:Java中的逻辑"非"运算符 逻辑& ...
随机推荐
- Android自定义权限
一.自定义权限 自定义权限,一般是考虑到应用共享组件时的安全问题.我们知道在四大组件 AndroidManifest 中注册的时候,添加 exported = "true" 这一属 ...
- leecode第一百二十四题(二叉树中的最大路径和)
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode ...
- Appium的工作原理
把我们写的python语言代码,看做客户端 通过客户端向appium服务器发送请求 appium服务器把我们的代码转换成手机可以识别的指令 然后把指令发给手机,手机根据指令做出相应的操作 最后手机把操 ...
- C#读取text内容并且于testbox中展现 保留换行实现方法
直接上代码 //新建一个储存的list List<string> listLines = new List<string>(); StreamReader sr = new S ...
- Python核心编程的四大神兽
http://www.cnblogs.com/ssy3340/p/9747722.html
- English trip V1 - B 18. Workplaces 工作地方 Teacher:Russell Key: do / does
In this lesson you will learn to talk about workplaces. 课上内容(Lesson) My English Teacher name is Russ ...
- C#特性-表达式树
表达式树ExpressionTree 表达式树基础 转载需注明出处:http://www.cnblogs.com/tianfan/ 刚接触LINQ的人往往觉得表达式树很不容易理解.通过这篇文章我希 ...
- LeetCode--350--两个数组的交集2
问题描述: 给定两个数组,编写一个函数来计算它们的交集. 示例 1: 输入: nums1 = [1,2,2,1], nums2 = [2,2] 输出: [2,2] 示例 2: 输入: nums1 = ...
- Creating a Hadoop-2.x project in Eclipse
Creating a Hadoop-2.x project in Eclipse hortonworks:MapReduce Ports http://docs.hortonworks.com/HDP ...
- Confluence 6 为边栏添加自定义内容
你可以使用 wiki 标记和自定义内容来对边栏进行更进一步的自定义. 希望添加自定义内容到你的边栏中: 进入空间后,然后从边栏的底部选择 空间工具(Space tools) > 外观和感觉(Lo ...