java中的i++与++i的区别以及除法、模的用法(基础)
java中i++与++i的区别:
例如:int i=3;
(先运算再赋值)j=++i; i的值先变成4,再赋给j,j的值为4;
(先赋值再运算)j=i++; 先将i的值3赋给j,j的值为3,然后i变成4;
如果基本了解之后,下面可以先联系一下
public class Test {
public static void main(String[] args) {
int y=0;
int i =0;
y=++y;
y=++y;
y=++y;
y=++y;
y=++y;
System.out.println("y="+y);
i=i++;
i=i++;
i=i++;
i=i++;
i=i++;
System.out.println("i="+i);
}
}
答案为y=5和i=0
为什么???不知道你是不是这样想的,如果不是就不用看解释了看下面的思考题吧。。。首先先解释第一个y=5的原因
//注意"="是赋值,"=="才是相等
y=++y;// y==0,++y==y+1; 结果y=++y == y+1 == 0+1 ==1
y=++y;// y==1,++y==y+1; 结果y=++y == y+1 == 1+1 ==2
y=++y;// y==2,++y==y+1; 结果y=++y == y+1 == 2+1 ==3
y=++y;// y==3,++y==y+1; 结果y=++y == y+1 == 3+1 ==4
y=++y;// y==4,++y==y+1; 结果y=++y == y+1 == 4+1 ==5
第二个为0的原因
i=i++;// i==0,i++==0; 结果i=i++ == (记住先赋值后运算)i=i,i=i+1(由于是i++运算这里我们输出的i只取先赋值的结果也就是i=i)
思考一个问题:
int i = 1, j = ++i + i++; 后i与j的值分别为:???
除法与的模的用法:
在进行除法运算的时候,当除数和被除数都为整数时,得到的结果也是一个整数,如果除法运算有小数参与,得到的结果会是一个小数,
比如:2510/1000属于整数之间相除,会忽略小数部分,得到的结果为2,而2.5/10的结果为0.25
在进行区模(%)的运算时,运算的结果的正负取决于被模数(%左边的数)的符号,与模数(%右边的数)的符号无关,
比如,(-5)%3 = -2而5%(-3)=2
java中的i++与++i的区别以及除法、模的用法(基础)的更多相关文章
- Java中==、equals、hashcode的区别与重写equals以及hashcode方法实例(转)
Java中==.equals.hashcode的区别与重写equals以及hashcode方法实例 原文地址:http://www.cnblogs.com/luankun0214/p/4421770 ...
- java中的sleep()和wait()的区别
对于sleep()方法,我们首先要知道该方法是属于Thread类中的.而wait()方法,则是属于Object类中的. sleep()方法导致了程序暂停执行指定的时间,让出cpu该其他线程,但是他的监 ...
- java中的this与super的区别
java中的this与super的区别 1. 子类的构造函数如果要引用super的话,必须把super放在函数的首位 代码如下: class Base { Base() { System.out.pr ...
- JAVA中extends 与implements有啥区别?
JAVA中extends 与implements有啥区别?1. 在类的声明中,通过关键字extends来创建一个类的子类.一个类通过关键字implements声明自己使用一个或者多个接口.extend ...
- JAVA中String = null 与 String = "" 的区别
JAVA中String = null 与 String = ""的区别 笔者今天在Debug的时候发现的NPE(NullPointerException),辛辛苦苦地调试了半天,终 ...
- Java中的throw和throws的区别
Java中的throw和throws的区别 1.throw关键字用于方法体内部,而throws关键字用于方法体部的方法声明部分: 2.throw用来抛出一个Throwable类型的异常,而throws ...
- Java中instanceof和isInstance的具体区别
Java中instanceof和isInstance的具体区别 在Think in Java泛型这一章遇到这个问题,一些博客模糊提到了isInstance是instanceof的动态实现,查阅文档参考 ...
- Java中wait和sleep方法的区别
1.两者的区别 这两个方法来自不同的类分别是Thread和Object 最主要是sleep方法没有释放锁,而wait方法释放了锁,使得其他线程可以使用同步控制块或者方法(锁代码块和方法锁). wait ...
- Java中static final 与 final 的区别(转载)
转自:http://advance0683.iteye.com/blog/1107732 Java中static final 与 final 的区别: 例子: Java代码 import java.u ...
随机推荐
- php国家或者编码英文字母排序
1.直接复制传入需要排序的字符,然后可以把返回的数据当key,传送给前台function getFirstCharter($str){ if(empty($str)){return '';} $fch ...
- wait和sleep的区别
wait是线程永久等待,只有调用notify才能进行唤醒 sleep是等待指定的时间,自动唤醒
- Spring Boot Actuator [监控与管理]
1. 如何添加 2. actuator 的原生端点(API) 2.1 应用类配置 2.1.1 http://localhost:8080/actuator/conditions 2.1.2 http: ...
- Docker 容器技术
前言: 之前感觉Docker是一种小虚拟机,docker和KVM虚拟机之间有什么区别.联系.可以应用在什么样的生产环境? 一.Docker是什么以及和KVM的区别 1.docker概念? Docker ...
- css3 翻牌动画
最近做了一个特效,css是从网上找的,地址是这个: CSS3 animate flip下的纸牌翻转效果实例页面 把其中核心的css代码扒出来如下: /* The properties in this ...
- 一个简单的windows勒索软件分析
根据分析,此病毒是一个勒索软件,通过修改登录用户密码,留下勒索QQ号码向用户索要金钱. 它调用了Kernel32.dll里的WinExec来执行更改用户密码的cmd命令,密码为107289,更改完密码 ...
- inotify事件监控工具
inotify事件监控工具 rsync + inotify 组合的起源 inotify优缺点 优点:监控文件系统事件变化,通过同步工具实现实时数据同步 缺点:并发如果大于200个文件(10-1 ...
- Road of computer tec 01
回顾自己过去将近3年的学习经历 当初报考的时候,自己是真正喜欢这个专业的么? 当初报这个专业的时候,对计算机还没有什么很明显的概念,只知道这个专业以后是要每天面对电脑的,喜欢不喜欢谈不上吧,但是还蛮感 ...
- xcode: 解决 __nw_connection_get_connected_socket_block_invoke 1 Connection has no connected handler
Run -> Arguments -> Environment Variables -> Add -> Name: "OS_ACTIVITY_MODE", ...
- centos7 无界面静默安装 oracle
环境准备 Centos7.3.64 64位 这里使用的是阿里云 ECS主机(1核,2G内存,40G硬盘) Oracle 11g R2 64位安装介质(版本11.2.0.1)下载地址:http:/ ...