public class CompareTwo{
public static void main (String args[]){
double d1=23.4;
double d2=35.1;
if (d2>=d1)
System.out.println(d2+">="+d1);
else
System.out.println(d1+">="+d2);
}
}
例3.2:判断某一年是否为闰年。
闰年的条件是符合下面二者之一: ①能被4整除,但不能被100整除; ②能被400整除。
public class LeapYear{
public static void main (String args[]){
int year=1989; //method1
if ((year%4==0 && year0!=0) || (year@0==0))
System.out.println(year+"is a leap year.");
else
System.out.println(year+"is not a leap year.");
year=2000; //method2
boolean leap;
if (year%4 != 0)
leap=false;
else if (year0 != 0)
leap=true;
else if (year@0 != 0)
leap=false;
else
leap=true;
if(leap==true)
System.out.println(year+" is a leap year.");
else
System.out.println(year+"is not a leap year.");
}
}
该例中,方法1用一个逻辑表达式包含了所有的闰年条件,方法2使用了if-else语句的特殊形式。
多分支语句switch
switch语句是一种多分支选择语句,它可根据switch中表达式的值,来执行多个操作中的一个,它的一般格式如下:
switch (expression){
case value1: statement1;
break;
case value2: statement2;
break;
…………
case valueN: statemendN;
break;
[default: defaultStatement;]
}
表达式expression可以返回任一简单类型的值(如整型、字符型),多分支语句把表达式返回的值与每个case子句中的值(一个常量)相比。
如果匹配成功,则执行该case子句后的语句序列。
default子句是任选的。当表达式的值与任一case子句中的值都不匹配时,程序执行default后面的语句。如果表达式的值与任一case子句
中的值都不匹配且没有default子句,则程序不做任何操作,直接跳出switch语句。
break语句用来在执行完一个case分支后,使程序跳出switch语句,即终止switch语句的执行。
switch语句的功能可以用if-else来实现,但在某些情况下,使用switch语句更简炼,且程序的执行效率提高。
例3.3 根据考试成绩的等级打印出百分制分数段。
public class GradeLevel {
public static void main(String args[]){
System.out.println("/nOutPut is:");
char grade='C'; //normal use
switch (grade){
case 'A': System.out.println(grade+"is 85~100");
break;
case 'B': System.out.println(grade+"is 70~84");
break;
case 'C': System.out.println(grade+"is 60~69");
break;
case 'D': System.out.println(grade+"is <60");
break;
default: System.out.println("inputerror");
}
}
}
break语句
在switch语中,break语句用来终止switch语句的执行。使程序在switch语句后的第一个语句开始执行。
在Java中,可以为每个代码块加一个括号。一个代码块通常是用花括号{}括起来的一段代码。加标号的格式如下:
BlockLabel: {codeBlock}
break语句的第二种使用情况就是跳出它所指定的块,并从紧跟该块的第一条语句处执行。其格式为: break BlockLabel;
例如:
a: {…… //标记代码块a
b: {…… //标记代码块b
c: {…… //标记代码块c
break a;
……//will not be executed
}
……//will not be executed
}
……//will not be executed
}
…… //execute from here
与C、C++不同, Java中没有goto语句来实现任意的跳转, 因为goto语句破坏程序的可读性, 而且影响编译的优化。Java用break来实现goto语句所特有的一些功能。
返回语句return
return语句用于从当前执行的方法中退出, 并返回到调用该方法的语句处继续程序的执行。返回语句有两种格式:
return expression
返回一个值给调用该方法的语句, 返回值的数据类型必须与方法声明中的返回值类型一致。可以使用强制类型转换来使类型一致。
return
当方法说明中用void声明返回类型为空时, 可以使用这种格式, 它不返回任何值。不带参数的return语句有时可省略。
return语句通常用在一个方法体的最后。
循环语句
循环语句包括 while, do-while, for, continue 等语句。循环语句的作用是反复执行一段代码,直到满足循环终止条件为止,
一个循环一般应包括四部分内容:
初始化部分(initialization): 用来设置循环的一些初始条件,计数器清零等。
循环体部分(body): 这是反复循环的一段代码,可以是单一的一条语句,也可以是复合语句。
迭代部分(iteration): 这是在当前循环结束,下一次循环开始前执行的语句,常常用来使计数器加1或减1。
终止部分(termination): 通常是一个布尔表达式,每一次循环要对该表达式求值,以验证是否满足循环终止条件。
下面分别介绍Java中的while语句,do-while语句和for语句。
while语句
while语句的一般格式为:
[初始化]
while (条件表达式E){
语句S; //循环体
}
当条件表达式E的值为true时,循环执行花括号中的语句S。S中包括迭代部分。
while语句首先计算条件表达式E是否成立,当条件成立(true)时,才去执行循环中的语句。所以有可能循环体一次也不执行。
do-while语句
do-while语句的一般格式为:
[初始化]
do {
语句S; //循环体
} while (条件表达式E);
do-while语句首先执行循环体, 然后再计算终止条件, 若结果为true, 则循环执行语句S, 直到条件表达式E的结果为false。
与while语句不同的是, do-while语句的循环体至少执行一次。