java运算符优先级与流程控制
1. Java 的方法Method (函数 Function), 功能, 动作
1) 方法就是函数: y=f(x)=3x+6;
2) 方法的语法
(修饰词)(返回值类型)(方法名)(参数列表){
//方法体
}
public static void main(String[] args){}
如:
public static int f(int x){
int y = 3 * x + 6;
return y;
}
4) 如果有返回值定义就必须有return语句, 返回和返回值类型
兼容的数据
5) 方法的参数和方法内部的变量 都是局部变量,
这些变量作用域只在方法内部!
6) 实参: 方法调用时候实际传递的参数变量
形参: 方法的参数定义,是临时变量.
2. Java 运算符
1) 算数运算符 + - * / %
A. 运算的封闭性(补码运算的封闭性):
1.同种类型参与运算(可能需要自动类型转换)
2.返回同种类型(可能发生:上溢出和下溢出)
3.byte, short, char 按照int运算
如: int a = 1 + 'A';
B. 整数的除法是整除, 除以2相当于移位运算(移动小数点)
C.Java中字面量的运算被Javac优化了, 优化为一个固定的常量.
D. % 计算除法的余数
1. 0 对其他数的 余数 是0
2. n%3 是 周期函数, 函数值 [0,3)
3. 负数的余数是负数(考试可能出现, 工作中很少用)
2)关系运算(*****)
== != > >= < <=
a.关系运算符的结果是boolean值。
b. == 判断左右俩个操作数是否相等
3)自增(减)运算符(*****)
i++ i--
++i --i
i++: 先将i的值赋值给i++,然后i在自增1.
++i:先让i自增1,然后将i的值赋值给++i;
eg: int i = 20; int b = i++; i = 21; b =20;
int i = 20 ; int b = ++i; i =21, b =21;
4)逻辑运算符(*****)
&& || ! & | ^
&&:短路逻辑与 俩个表达式都是true结果是true,否则是false;
||:短路逻辑或 俩个表达式只要有一个是true,结果是true,
! :逻辑非 !true= false !false=true
a.逻辑运算符的结果一定是boolean值,操作数是boolean表达式。
b.经常使用短路的逻辑或和短路的逻辑与。
短路的与,在发现第一个表达式是false了。第二个表达式不执行了。
非短路的与,在发现第一个表达式是false了,第二个表达式还要执行。
短路的或:在发现第一个表达式是true,第二个表达式不在执行。
非短路的或:在发现第一个表达式是true,第二个表达式还要执行。
&:非短路的与
| :非短路的或
^:逻辑异或: 俩个操作相同结果是false,俩个操作数不同结果是true.
5)条件运算符(三目运算符号)(****)
条件表达式?表达式1:表达式2;
判断一个数能被另外一个数整除,取余看结果是否等于0。
判断一个数是否是奇数还是偶数,对2取余看结果是否等于0;
6)赋值运算符(*****)
= += -= *= /= %=
int age = 23;
age +=2;//等价于 age = age+2;
age *= 2;//等价于 age= age*2;
注意:
= 赋值运算符。
==: 关系运算符 判断俩个数是否相等。
7)移位运算符
&:按位与
| : 按位或
^: 按位异或
~:按位取反
<<:有符号左移
>>:有符号右移
>>>: 无符号右移
移位运算性能比较高。
位运算是在二进制的基础上进行的。
最后的结果是数。
7)运算符的优先级和结合性:
int i = 1+2+3+4; 从左向右
int a = 23; 从右向左
a. = 的优先级最低,()的优先级最高。
b. 如果想让优先级的运算符先运算,可以加()控制;
c. 算术运算符 > 关系运算符 >逻辑运算符
d. 在逻辑运算符中, ! > && > ||
e. 从右向左结合只有 赋值运算符, 三目运算符,单目运算符,其他运算符的结合性都是从左向右。
3. 分支流程控制
1) if ... else
语法: if(布尔表达式){
//语句块..
}else{
//语句块
}
嵌套: if(布尔表达式1){
//...
}else if(布尔表达式2){
//...
}else if(布尔表达式3){
//...
}else{
//...
}
if(){
if(){
if(){
//?
}
}
}
2) switch ... case
语法: switch: 开关, case: 情况下
switch(整数表达式){
case 整数常量1:
//语句序列
break;
case 整数常量2:
//语句序列
break;
default:
//语句序列
}
A. switch条件: 只能是整数(int byte char short)表达式
switch 不能处理long 或其他类型
B. case 只能是整数(int byte char short)常量, 不能使用
变量及表达式. 如: '中'
C. break 跳转到switch结束继续执行, 可以根据业务逻辑是否使用
经常都写break
4. 循环控制
1) While 循环控制
语法:
while(布尔表达式){
//循环体 语句序列
}
若有不完善的地方请大家多提意见,转发时请注明出处!
java运算符优先级与流程控制的更多相关文章
- Java基础语法(4)-流程控制
title: Java基础语法(4)-流程控制 blog: CSDN data: Java学习路线及视频 1.程序流程控制 流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定 ...
- JAVA入门基础及流程控制
JAVA入门基础及流程控制 数据类型 位 存储单位 eg:0001 0011 八位 字节 byte 处理数据单位 一字节等于八位 eg:1b=0011 0001 类变量: static int num ...
- Java基础语法与流程控制
Java基础语法与流程控制 跟着狂神学Java的第二天O(∩_∩)O~,养成一个总结的习惯 志同道合的小伙伴可以一起学习狂神的视频 本节地址:https://www.kuangstudy.com/co ...
- Java运算符优先级(转)
转自:http://www.cnblogs.com/gw811/archive/2012/10/13/2722752.html Java运算符优先级 序列号 符号 名称 结合性(与操作数) 目数 说明 ...
- 【转】Java运算符优先级
原文网址:http://www.cnblogs.com/gw811/archive/2012/10/13/2722752.html Java运算符优先级 序列号 符号 名称 结合性(与操作数) 目数 ...
- Java基础之程序流程控制
Java中的程序流程控制 Java中的程序流程分为三种结构:①顺序结构:②分支结构:③循环结构 一.顺序结构 Java中定义成员变量的时候,采用的是前向引用,也就是后面的变量可以引用之前定义好的变量. ...
- 【java基础】Java运算符优先级
Java运算符优先级 序列号 符号 名称 结合性(与操作数) 目数 说明 1 . 点 从左到右 双目 ( ) 圆括号 从左到右 [ ] 方括号 从左到右 2 + 正号 从右到左 单目 - 负号 ...
- Java基础语法02——流程控制
流程控制:顺序结构.分支结构(if-else.switch-case).循环结构(for.while.do-while)
- Java - day002 - 运算符,位运算,流程控制
1 运算符 +-*/ (+) 既是数学运算 ,也是 字符串链接 % 求余 / 求模 (进口大麻袋) == ...
随机推荐
- jquery判断对象是否显示或隐藏
if($('a.specail2').is(":visible")){ /**jquery判断对象是否显示或隐藏**/ $('a.one').hide(); $('a.specai ...
- JAVA IO流结构图
InputStreamReader和OutputStreamWriter分别继承自java.io包中的Reader和Writer,对他们中的抽象的未实现的方法给出实现.如: public int re ...
- Bootstrap进度条
前面的话 在网页中,进度条的效果并不少见,比如一个评分系统,比如加载状态等,通过简单.灵活的进度条,可以为当前工作流程或动作提供实时反馈.本文将详细介绍Bootstrap进度条 基本样式 Bootst ...
- kbengine新手教程
KBEngine服务端引擎开源项目地址(github):https://github.com/kbengine/kbengine引擎下载与编译:http://kbengine.org/cn/docs/ ...
- 求从n个数组任意选取一个元素的所有组合
最近做项目碰到这个问题,如题从n个数组任意选取一个元素的所有组合.比如已知数组是[1, 3]; [2, 4]; [5]; 最后组合结果是[1, 2, 5]; [1, 4, 5]; [3, 2, 5] ...
- DotNetCore跨平台~EFCore连接Mysql的方式
回到目录 在.net frameworks的ef里连接mysql我们已经测试通过了,而在dotnet core里的efCore上去连接mysql我们需要测试一下,并且在测试过程中出现了一些问题,当然最 ...
- 论Activity及启动模式,Fragment,Service的使用以及生命周期
Activity: 这是我总结出来的,介于Activity生命周期相对较多,我在Google官方的生命周期图上又加了几个常用的,便于大家理解 对于ACtivity,先说说启动模式(ps:复制党去死吧, ...
- python+matplotlib+web.py
最近看了厦门大学数据库实验室林子雨老师的<大数据课程实验案例:网站用户行为分析>,可视化这块是用的R语言,我决定用Python来实现一下. 参考文献 http://dblab.xmu.ed ...
- pc端的企业网站(IT修真院test9)详解一个响应式完成的pc端项目
一:引入bootstrap框架 昨天一直被bootstrap栅格系统折磨. why? 我本来想一边码字,一边学习栅格布局的.but不成功.这时我头脑已经昏了. 下午,我查看了bootstrap的官网, ...
- Excel无法vlookup事件
最近由于工作关系,深入的用了一阵excel,并遭遇和处理了一系列关于excel数据的问题. 其中最有趣的一个,就是一个无法vlookup的问题. 问题记录如下: excel中直接打开csv文件,看到类 ...