Java 求闰年 (细细品味if语句分开写和合到一起写得到的不一样的结果)
来源:互联网 发布:chrome json 插件 编辑:程序博客网 时间:2024/06/10 17:02
package cn.itcast.demoZuoYe_GuanQia3;
/*
* 关卡3 训练1
* 定义一个方法,去打印指定两个年份之间所有的闰年年份
如:将2000和2005传入方法,方法执行完毕会打印出这段之间的所有闰年年份
2000和2004
提示:
计算公历年闰年的算法: 四年一闰,百年不闰,四百年再闰
翻译:
满足如下任意一条即使如年
1)年份是整百数的必须是400的倍数才是闰年
2)其他年份能被4的是闰年
实例: 2000 是整百数,并且是400的倍数所以是闰年; 2004年是4的倍数是闰年
2100 是整百的倍数但不是400的倍数,所以不是闰年
* */
import java.util.Scanner;
public class Test1_XunZhaoRuiNian {
public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请制定第一个年份:"); int year1 = sc.nextInt(); System.out.println("请制定第二个年份:"); int year2 = sc.nextInt(); ruiNian(year1, year2);}public static void ruiNian(int a, int b) { int min = a < b ? a : b; int max = a > b ? a : b; System.out.println("第一种方法:"); //这里特别值得品味................................................ for (int i = min; i <= max; i++) { /* *这种方式得不到想要的结果,比如说当i=2100(非闰年)时i%400==0不满足条件 *将执行else语句,而else里面的if语句是满足条件的,所以会把2100当成瑞年进行输出 */ // if (i % 100 == 0 && i % 400 == 0) { // System.out.println(i); // } else { // if (i % 4 == 0) { // System.out.println(i); // } // } /*相比于上面的方式,下面的方式当i=2100(非瑞年)时,由于i%100==0为真, * 所以会继续执行if (i % 400 == 0),此时i % 400 == 0为假, * 不会执行任何其他的语句,更不可能跳到else语句,所以这种方式可以得到所有真正的瑞年 */ if (i % 100 == 0) {// 1)年份是整百数的必须是400的倍数才是闰年 if (i % 400 == 0) { System.out.println(i); } } else {// 2)其他年份能被4的是闰年 if (i % 4 == 0) { System.out.println(i); } } } /*i % 4 == 0 && i % 100 != 0 || i % 400 == 0 * 第一句:可以得到所有被4整除的数; * 第二句:相当于排除了所有年份为整百数的年份; * 第三句:又把年份为整百数的年份中可以被400整除的年份给弄了回来. * 所以这种方式也可以得到所有真正的瑞年 */ System.out.println("第二种方法:"); for (int i = min; i <= max; i++) { if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0) { System.out.println(i); } }}
}
阅读全文
0 0
- Java 求闰年 (细细品味if语句分开写和合到一起写得到的不一样的结果)
- 少写一个“;”,带来不一样的结果
- 写一段java代码让if else里面的语句都执行到
- java运算计算的方式得到的结果和通过计数器得到的结果不一样
- JAVA写的"连连看",一起学习!
- 将查询结果插入到另一张表的语句怎么写
- jquery写的东西记得要加";"分号,要不然会出现不一样的结果
- if()语句中逗号写错位置的教训!
- sql语句也可以写类似于if的判断
- C++产生随机数,每次运行得到的结果不一样
- C++产生随机数,每次运行得到的结果不一样
- 求1900到2017的闰年天数
- 将Java程序的输出结果写到txt文件中
- 如何实现把web项目的输出流重置,并将打印语句结果写到日志文件
- Java 抽象类实现的意义:方法与方法体分开写!
- .py里的结果写到.m中
- 第十一周 OJ 写一个查找m年到n年直之间闰年的程序
- 我们一起写SQL语句
- Listener监听器
- 开博了。。
- Redis单线程架构
- JAVA 8函数式编程(二):每个函数都是可以传递的对象
- Linux内建命令及Bash Shell
- Java 求闰年 (细细品味if语句分开写和合到一起写得到的不一样的结果)
- Android学习--多媒体功能:通知 notification(振动,声音,呼吸灯)
- JVM中对象的创建过程
- Java菜鸟成长之路__Day_3_Java_二维数组
- 从小工到专家【借鉴】
- scala-特质
- 树莓派
- 51Nod-1423-最大二"货"
- 说说struts1与struts2的区别