明明书上写的++i(前自增)和i++(后自增)作用是不一样的。 但是在我眼中看来它们的作用却好像一样?? 这个难题怎么破?快来观看这期【图文+视频】吧。 让你快速掌握++i(前自增)和i++(后自增)。
视频讲解:
点击此处即可到B站观看视频www.bilibili.com知识点讲解:
- ++i前自增:
1. 在使用i之前,使i的值加1,
2. 因此执行完++i后,整个表达式和i的值均为i+1
- i++后自增:
1. 在使用i之后,使i的值加1,
2. 因此执行完i++后,整个表达式的值为i
3. 而i的值变为i+1
- ||:逻辑或:
1. 只要有一个条件结果为true即为true
2. 所有条件结果均为false才为false
例题1分析:(i与j均为后自增)
package com.task03;
public class P044_ {
public static void main(String[] args) {
int i = 0, j = 1;
if ((i++ == 1) || (j ++== 2)) {//此时i++==0 j++==1
j = 42;
}
System.out.println("i=" + i + ",j=" + j);//i=1,j=2
}
}
1.初始化 i=0 j=1
由于后自增是使用i之后,使i的值加1
执行i++后,整个表达式的值为i,而i的值变为i+1
2.所以执行i++后,整个表达式的值为i即为0 不满足i++ == 1的条件
同理执行j++后,整个表达式的值为j即为1 不满足j++ == 2的条件
3.因此不能执行 j=42;
4.因为执行i++后,i的值变为i+1,j的值变为j+1
所以在执行输出语句后 i=1,j=2
例题1图片:(i与j均为后自增)
例题2分析:(i为后自增,j为前自增)
package com.task03;
public class P044_ {
public static void main(String[] args) {
int i = 0, j = 1;
if ((i++ == 1) || (++j == 2)) {//此时i++==0 ++j==2
j = 42;
}
System.out.println("i=" + i + ",j=" + j);//i=1,j=42
}
}
1.初始化 i=0 j=1
由于前自增:在使用j之前,使j的值加1,
因此执行完++j后,整个表达式和j的值均为i+1
2.所以执行i++后,整个表达式的值为i即为0 不满足i++ == 1的条件
而执行++j后,整个表达式的值为j+1即为2 满足++j == 2的条件
3.因此能执行 j=42;
4.因为执行i++后,i的值变为i+1,j的值变为42
所以在执行输出语句后 i=1,j=42
例题2图片:(i为后自增,j为前自增)
推荐你看:
小乔甜甜:【视频+图文】带你快速掌握Java中含break语句的双重for循环
小乔甜甜:【视频+图文】带你快速掌握Java中含continue语句的双重for循环
小乔甜甜:【小白视频学Java for循环】3分钟学会Java的for循环,让看懂for循环嵌套再不是难事
小乔甜甜:Java基本数据类型的介绍及其转换(内附字符串与多种数据之间的转换)
【视频+图文】新手友好型Java return语句用法
如果你觉得这篇文章还不错,麻烦帮我点个赞鸭!可以让更多人看到这篇文章。让我有动力继续更技术文~(小乔的Java系列专栏内容会由浅入深更新呢,需要的宝宝可以关注一下哦~)