记得参加工作的第二年,我的同事小二就因为把“前缀递增”写成了“后缀递增”被一顿痛骂之后拉出去祭天了。至今我还耿耿于怀,因为我也是参与者之一(当时小王准备使用p = p + 1,但我劝小王使用p++,因为自动递增更加简洁);但小二很讲义气,没有把我捅出去,我才苟且活到今日。往事不堪回首,但为了以后的Java程序员着想,我决定忍着记忆的苦涩把小二当年的那段代码记录下来:

public static void main(String[] args) {int p = 0;calculate(p);
}public static void calculate(int p) {if (p < 3) {// 其他calculate(p++);}
}

按照以上的代码来看,这是一个死循环,calculate迭代是不会跳出的,直到程序报错。为什么会这样呢?

因为后缀递增会先生成值,再执行运算;也就是p++这个表达式的结果还是p。但前缀递增会先执行运算,再生成值;也就是++p这个表达式的结果是p+1。

那以上代码正确的写法是什么呢?答案如下:

public static void main(String[] args) {int p = 0;calculate(p);
}public static void calculate(int p) {if (p < 3) {// 其他calculate(++p);}
}

上一篇:Java 的操作符——“=”号

下一篇:Java 流程控制语句

如果你觉得文章对你有所帮助,也蛮有趣的,就微信搜索“沉默王二”关注一下我的公众号。嘘,回复关键字「Java」更有好礼相送哦。

害死人的自动递增,不偿命的自动递减相关推荐

  1. mysql文本自动递增_mysql-如何创建自动递增的字符串?

    简短答案-使用此查询: SELECT id AS PrevID,CONCAT( SUBSTRING(id,1,4),IF(CAST(SUBSTRING(id,5) AS UNSIGNED) <= ...

  2. 1001.害死人不偿命的(3n+1)猜想

    题目截图: 思路: 简单模拟.具体见另一篇博客. 代码: 1 /* 2 1001.害死人不偿命的(3n+1)猜想 3 */ 4 5 #include <stdio.h> 6 #includ ...

  3. PAT—— 害死人不偿命的(3n+1)猜想 (1001)

    1001 害死人不偿命的(3n+1)猜想 卡拉兹(Callatz)猜想: 对任何一个正整数 n,如果它是偶数,那么把它砍掉一半:如果它是奇数,那么把 (3n+1) 砍掉一半.这样一直反复砍下去,最后一 ...

  4. c++ pat 乙级 --1001 害死人不偿命的(3n+1)猜想

    1001 害死人不偿命的(3n+1)猜想 (15 分) 卡拉兹(Callatz)猜想: 对任何一个正整数 n,如果它是偶数,那么把它砍掉一半:如果它是奇数,那么把 (3n+1) 砍掉一半.这样一直反复 ...

  5. 1001 害死人不偿命的(3n+1)猜想 (15分)

    1001 害死人不偿命的(3n+1)猜想 (15分) 卡拉兹(Callatz)猜想: 对任何一个正整数 n,如果它是偶数,那么把它砍掉一半:如果它是奇数,那么把 (3n+1) 砍掉一半.这样一直反复砍 ...

  6. C++学习之路 | PTA乙级—— 1001 害死人不偿命的(3n+1)猜想 (15分)(精简)

    1001 害死人不偿命的(3n+1)猜想 (15分) 卡拉兹(Callatz)猜想: 对任何一个正整数 n,如果它是偶数,那么把它砍掉一半:如果它是奇数,那么把 (3n+1) 砍掉一半.这样一直反复砍 ...

  7. PAT1001. 害死人不偿命的(3n+1)猜想

    1001. 害死人不偿命的(3n+1)猜想 (15) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 卡拉兹(Ca ...

  8. [Java] 1001. 害死人不偿命的(3n+1)猜想 (15)-PAT乙级

    1001. 害死人不偿命的(3n+1)猜想 (15) 卡拉兹(Callatz)猜想: 对任何一个自然数n,如果它是偶数,那么把它砍掉一半:如果它是奇数,那么把(3n+1)砍掉一半.这样一直反复砍下去, ...

  9. 【PAT乙】1001 害死人不偿命的(3n+1)猜想 (15分) 模拟,水水更健康

    1001 害死人不偿命的(3n+1)猜想 (15分) 卡拉兹(Callatz)猜想: 对任何一个正整数 n,如果它是偶数,那么把它砍掉一半:如果它是奇数,那么把 (3n+1) 砍掉一半.这样一直反复砍 ...

最新文章

  1. qt qtableview 刷新列表_qt qtablewidget 刷新
  2. java中日期类型与字符串相互转换
  3. 面试之 listview优化
  4. IOS开发基础之汽车品牌项目-14
  5. GitHub 上100个优质前端项目整理,值得收藏!
  6. mysql锁表_MySQL中Alter table 你不知道的性能问题
  7. java struts2 ajax_在struts2的Action中返回Ajax数据
  8. 三菱modbusRTU通讯实例_实例 | 三菱PLC接线图干货,FX5U模块硬件
  9. Lua利用cjson读写json
  10. 【理解】 Error 10053和 Error 10054
  11. 1113 Integer Set Partition(25 分)
  12. html打印强制分页
  13. Fail: Failover,Failfast,Failback,Failsafe
  14. 教你用Python批量下载音乐功能,无需安装播放器,直接下载!
  15. DNS到底是干什么用的
  16. 常见神经系统疾病的临床诊断及处理原则题库【1】
  17. Maven插件仓库地址
  18. 获国际权威认可 | 云扩科技入选《RPA全球市场格局报告,Q3 2022》
  19. 1秒变大神,学会这个PPT技巧,让你的PPT比别人好看30倍!
  20. Express实现生成二维码接口

热门文章

  1. C++扫码枪输入响应消息
  2. 超级超级炫酷的Echarts数据可视化
  3. 橙狮AI图像识别绘本阅读方案(含完整源代码和开发文档)
  4. 手机天线最新资料大全
  5. 微信小程序 主包与分包的控制小程序大小
  6. Microphone Array Beamforming(麦克风阵列波束形成)
  7. eclipse火星_增强您的Eclipse开发技能:火星修复程序
  8. uvm_tlm_req_rsp_channel
  9. PacketiX ×××在CentOS网关问题总结
  10. 【依葫芦画葫芦】の Scrapy Dou鱼封面爬取 笔记