Java学习-Day2

基本 if 语句

1.if then else

if-else语句是控制程序流程的最基本的形式,其中else是可选的。基于此就会存在下列三种形式。

1.存在else的表达式

1
2
3
4
5
if(布尔表达式) {
代码
} else {
代码
}

2.不存在else的表达式

1
2
3
if(表达式) {
代码
}

注:在代码中常出现的else if并不是什么新语句,而是else后又接上了一个if-else

2.方法(函数)调用

函数的作用一是增加代码的复用性,二是将部分处理过程独立出来提高代码的可读性。

3.方法(函数)头部规范的注释

头部规范的注释是后期生成文档的基础。其原理是解析类似于以@param、@author为开头的等注释来实现在文档中阐述函数参数、作者等信息。

4.示例

题目描述

通过if-else语句判断一个数正负,并以此为依据求出其绝对值。然后自定义一个函数用来求一个数的绝对值。

输入

一个数

示例:

1
4
1
-5

输出

输入数的绝对值

示例:

1
input:4 ==> output:4
1
input:-5 ==> output:5

具体代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
package test;

/**
*
* The usage of the if statement.
*
* @author ShiHuai Wen E-mail:wshysxcc@outlook.com.
* @version 创建时间:2022年4月3日 下午9:30:00
*
*/
public class IfStatement {

public static void main(String[] args) {
// TODO Auto-generated method stub
int tempNumber1, tempNumber2;

// Try a positive value
tempNumber1 = 5;

if (tempNumber1 >= 0) {
tempNumber2 = tempNumber1;
} else {
tempNumber2 = -tempNumber1;
} // Of if

System.out.pri ntln("The absolute value of " + tempNumber1 + " is " + tempNumber2);

// Now we use a method/function for this purpose.
tempNumber1 = 6;
System.out.println("The absolute value of " + tempNumber1 + " is " + abs(tempNumber1));

tempNumber2 = -8;
System.out.println("The absolute value of " + tempNumber2 + " is " + abs(tempNumber2));

}// Of main

public static int abs(int paraValue) {
if (paraValue >= 0) {
return paraValue;
} else {
return -paraValue;
} // Of if
}// Of abs

}// Of class IfStatement

运行截图

闰年的计算

1.if 语句的嵌套

在if的代码区域可以继续使用if-else形成递进,各个表达式之间是且的关系。 简要代码如下所示:

1
2
3
4
5
6
7
8
if (表达式) {
if (表达式) {
代码
} else {
代码
}
}

2.基本规律

普通闰年:公历年份是4的倍数,且不是100的倍数的,为闰年(如2004年、2020年等就是闰年)

世纪闰年:公历年份是整百数的,必须是400的倍数才是闰年(如1900年不是闰年,2000年是闰年)

3.布尔类型

如同计算机底层结构非0即1一样,布尔类型要表达的正是这种思想,可以表达为正确或错误其中之一的状态。正确则为true,错误则为false。

4.题解

输入

一个用正整数表示的年份

示例:

1
2000

输出

一个布尔值,true表示是闰年,false表示不是闰年。

具体代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
package test;

/**
* The complex usage of the if statement.
*
* @author ShiHuai Wen E-mail:wshysxcc@outlook.com.
* @version 创建时间:2022年4月3日 下午9:50:00
*/

public class LeapYear {

/**
*********************
* The entrance of the program.
*
* @param args Not used now.
*********************
*/
public static void main(String args[]) {
// Test isLeapYear
int tempYear = 2021;

System.out.print("" + tempYear + " is ");
if (!isLeapYear(tempYear)) {
System.out.print("NOT ");
} // Of if
System.out.println("a leap year.");

tempYear = 2000;

System.out.print("" + tempYear + " is ");
if (!isLeapYear(tempYear)) {
System.out.print("NOT ");
} // Of if
System.out.println("a leap year.");

tempYear = 2100;

System.out.print("" + tempYear + " is ");
if (!isLeapYear(tempYear)) {
System.out.print("NOT ");
} // Of if
System.out.println("a leap year.");

tempYear = 2004;

System.out.print("" + tempYear + " is ");
if (!isLeapYear(tempYear)) {
System.out.print("NOT ");
} // Of if
System.out.println("a leap year.");

// Test isLeapYearV2
System.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

运行截图

总结

分支判断是编程的基础,正如人思考问题一样。如果情况如何,那么就该怎么做。但是如果存在if-else嵌入过深的时候就需要考虑自己的逻辑,可以会运用设计模式中的方法来解决问题。