文章目录
- 基本 if 语句
- 1.if then else
- 2.方法(函数)调用
- 3.方法(函数)头部规范的注释
- 4.示例
- 题目描述
- 输入
- 输出
- 具体代码
- 运行截图
- 闰年的计算
- 1.if 语句的嵌套
- 2.基本规律
- 3.布尔类型
- 4.题解
- 输入
- 输出
- 具体代码
- 运行截图
- 总结
基本 if 语句
1.if then else
if-else语句是控制程序流程的最基本的形式,其中else是可选的。基于此就会存在下列三种形式。
1.存在else的表达式
if(布尔表达式) {
代码
} else {
代码
}
2.不存在else的表达式
if(表达式) {
代码
}
注:在代码中常出现的else if并不是什么新语句,而是else后又接上了一个if-else
2.方法(函数)调用
函数的作用一是增加代码的复用性,二是将部分处理过程独立出来提高代码的可读性。
3.方法(函数)头部规范的注释
头部规范的注释是后期生成文档的基础。其原理是解析类似于以@param、@author为开头的等注释来实现在文档中阐述函数参数、作者等信息。
4.示例
题目描述
通过if-else语句判断一个数正负,并以此为依据求出其绝对值。然后自定义一个函数用来求一个数的绝对值。
输入
一个数
示例:
4
或
-5
输出
输入数的绝对值
示例:
input:4 ==> output:4
或
input:-5 ==> output:5
具体代码
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形成递进,各个表达式之间是且的关系。
简要代码如下所示:
if (表达式) {
if (表达式) {
代码
} else {
代码
}
}
2.基本规律
普通闰年:公历年份是4的倍数,且不是100的倍数的,为闰年(如2004年、2020年等就是闰年)
世纪闰年:公历年份是整百数的,必须是400的倍数才是闰年(如1900年不是闰年,2000年是闰年)
3.布尔类型
如同计算机底层结构非0即1一样,布尔类型要表达的正是这种思想,可以表达为正确或错误其中之一的状态。正确则为true,错误则为false。
4.题解
输入
一个用正整数表示的年份
示例:
2000
输出
一个布尔值,true表示是闰年,false表示不是闰年。
具体代码
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嵌入过深的时候就需要考虑自己的逻辑,可以会运用设计模式中的方法来解决问题。