日撸 Java 三百行 (04-05,基础语法)

第四天:闰年的计算

1.if语句的嵌套

2.闰年的基本运算规律

3.布尔类型

package basic;/** * The complex usage of the if statement. *  * @author 凤fff * */public class LeapYear {/** ************************** * The entrance of the program. *  * @param args Not used now. ************************** */public static void main(String args[]) { // Test isLeapYearint tempYear = 2021 ;System.out.print(" " + tempYear + " is ");if ( ! isLeapYear(tempYear)) {System.out.print("Not ");} // Of ifSystem.out.println("a leap year.");tempYear = 2000 ;System.out.print(" " + tempYear + " is ");if ( ! isLeapYear(tempYear)) {System.out.print("Not ");} // Of ifSystem.out.println("a leap year.");tempYear = 2100 ;System.out.print(" " + tempYear + " is ");if ( ! isLeapYear(tempYear)) {System.out.print("Not ");} // Of ifSystem.out.println("a leap year.");tempYear = 2004 ;System.out.print(" " + tempYear + " is ");if ( ! isLeapYear(tempYear)) {System.out.print("Not ");} // Of ifSystem.out.println("a leap year.");// Test isLeapYearV2System.out.println("Now use the second version.") ;tempYear = 2021 ;System.out.print(" " + tempYear + " is ");if ( ! isLeapYearV2(tempYear)) {System.out.print("Not ");} // Of if System.out.println("a leap year.") ;tempYear = 2000 ;System.out.print(" " + tempYear + " is ");if ( ! isLeapYearV2(tempYear)) {System.out.print("Not ");} // Of if System.out.println("a leap year.") ;tempYear = 2100 ;System.out.print(" " + tempYear + " is ");if ( ! isLeapYearV2(tempYear)) {System.out.print("Not ");} // Of if System.out.println("a leap year.") ;tempYear = 2004 ;System.out.print(" " + tempYear + " is ");if ( ! isLeapYearV2(tempYear)) {System.out.print("Not ");} // Of if System.out.println("a leap year.") ;} // Of main/** *********************** * Is the given year leap? *  * @param paraYear The given year. *********************** */public static boolean isLeapYear(int paraYear) {if ((paraYear % 4 ==0) && (paraYear % 100 != 0) || paraYear % 400 == 0){return true ;} else {return false ;} // Of if} // Of isLeapYear/** *********************** * Is the given year leap? Replace the complex condition with a number of if. * * @param paraYear The given Year. *********************** */public static boolean isLeapYearV2(int paraYear) {if (paraYear % 4 != 0) {return false ;} else if (paraYear % 400 == 0) {return true ;} else if (paraYear % 100 == 0) {return false ;} else {return true ;} // Of if} // Of isLeapYearV2} // Of class LeapYear

运行结果

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAUGhvZW5peCBrbmlnaHQ=,size_13,color_FFFFFF,t_70,g_se,x_16

注意,在 isLeapYearV2 中 取余100 和取余 400 不能交换位置 判断是从上向下执行的如果上面的满足条件就不会向下执行

第五天:

1.Switch, case, break, default 用法

2. 单元测试单独使用一个方法,main 方法里面的代码越少越好

package basic;/** * This is the fifth code. Names and comments should follow my style strictly. *  * @author 凤fff * */public class SwitchStatement {/** ********************* * The entrance of the program. *  * @param args *            Not used now. ********************* */public static void main(String args[]) {scoreToLeveTest();} // Of main/** ********************* * Score to level. *  * @param paraScore *            From 0 to 100. * @return The level form A to F. ********************* */public static char scoreToLevel(int paraScore) {// E stand for error, and F stands for fail.char resultLevel = 'E';// Divide by 10, the result rangs from 0 to 10int tempDigitalLevel = paraScore / 10;// The use of break is important.switch (tempDigitalLevel) {case 10:case 9:resultLevel = 'A';break;case 8:resultLevel = 'B';break;case 7:resultLevel = 'C';break;case 6:resultLevel = 'D';break;case 5:case 4:case 3:case 2:case 1:case 0:resultLevel = 'F';break;default:resultLevel = 'E';} // Of switchreturn resultLevel;} // Of scoreToLevelpublic static void scoreToLeveTest() {int tempscore = 100;System.out.println("Score " + tempscore + " to level is: " + scoreToLevel(tempscore));tempscore = 91;System.out.println("Score " + tempscore + " to level is: " + scoreToLevel(tempscore));tempscore = 83;System.out.println("Score " + tempscore + " to level is: " + scoreToLevel(tempscore));tempscore = 75;System.out.println("Score " + tempscore + " to level is: " + scoreToLevel(tempscore));tempscore = 66;System.out.println("Score " + tempscore + " to level is: " + scoreToLevel(tempscore));tempscore = 53;System.out.println("Score " + tempscore + " to level is: " + scoreToLevel(tempscore));tempscore = 8;System.out.println("Score " + tempscore + " to level is: " + scoreToLevel(tempscore));tempscore = 120;System.out.println("Score " + tempscore + " to level is: " + scoreToLevel(tempscore));} // Of scoreToLevelTest} // Of class SwitchStatement

运行结果

 

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAUGhvZW5peCBrbmlnaHQ=,size_10,color_FFFFFF,t_70,g_se,x_16

条件分支有多个 条件的值是整数或一个字符值 选用Switch更好

 

 

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 动态数组是一种可以根据需要动态增加或减少大小的数组。在Java中,动态数组可以使用ArrayList类来实现。ArrayList类提供了一些方法来添加、删除、获取和修改元素。与普通数组不同的是,ArrayList可以自动调整大小,因此不需要手动管理数组大小。 ### 回答2: 在Java中,数组是存储一组同类型元素的有效数据结构。通常,当我们需要定义数组但无法确定其长度时,可以使用动态数组。与静态数组相比,动态数组可以在程序运时动态地改变其大小。它不需要分配整个内存块,而是可以按需增加或减少其大小。Java通过ArrayList类来实现动态数组。 要使用ArrayList类,需要导入Java.util包,然后定义一个ArrayList变量。与静态数组不同,对动态数组进元素的添加或删除不需要重新定义整个数组。因此,对于频繁变化的数据结构,动态数组是一种更为灵活和高效率的选项。 ArrayList类有许多有用的方法,例如add(),remove(),size(),get()等。使用add()方法可以将一个元素添加到动态数组的末尾。如果需要在指定位置添加元素,则可以使用add(int index, Object element)方法。remove()方法可以从数组中删除一个元素。size()方法可以返回动态数组目前的大小,而get()方法可以按照索引值返回数组中的元素。 虽然动态数组的使用便捷和高效,在使用时需要注意一些细节问题。因为动态数组内部使用了一个数组,所以频繁地添加和删除元素会导致内部数组的扩充和缩小,从而降低性能。在处理大量数据时,我们应该考虑使用其他数据结构,例如链表。 总之,动态数组在Java编程中非常常用,特别是在需要不确定数组长度的情况下。熟练掌握动态数组的使用方法,可以提高代码的效率和可读性,同时也丰富了Java的数据结构知识。 ### 回答3: 动态数组,也称为可调整数组,是一种支持动态内存分配的数组类型。与静态数组不同,动态数组的大小在程序运时可以动态调整。在Java中,动态数组可以使用数组列表(ArrayList)或Vector来实现。 ArrayList是Java中常用的动态数组类。声明和初始化一个ArrayList的方法如下: ```java ArrayList<String> list = new ArrayList<String>(); ``` 在这个示例中,ArrayList中存储的是字符串类型的元素。如果要存储其他类型的元素,只需相应地将“String”替换为相应的类型即可。 向ArrayList中添加元素的方法是“add”方法。例如,在上面的示例中,我们可以使用以下代码向ArrayList中添加元素: ```java list.add("apple"); // 添加元素"apple"到列表中 ``` 获取ArrayList中元素的方法是“get”方法。例如: ```java String element = list.get(0); // 获取列表中索引为0的元素 ``` 需要注意的是,ArrayList和Vector都是动态数组类型,它们的区别在于线程同步。Vector是线程安全的,而ArrayList非线程安全。因此,在多线程环境下使用动态数组时,建议使用Vector。 除了ArrayList和Vector之外,还有其他的动态数组实现方式,比如LinkedList、CopyOnWriteArrayList等。 总的来说,动态数组是一种非常常用的数据结构类型,它具有动态调整大小的优势,适用于需要频繁插入和删除元素的情况。在Java中,我们可以使用ArrayList或Vector来实现动态数组,并根据需要选择合适的实现方式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值