// 读取总秒数
int totalSeconds = Integer.parseInt(args[0]);
// 计算分钟和剩余秒数
int minutes = totalSeconds / 60; int seconds = totalSeconds % 60;
// 显示结果
System.out.println(
totalSeconds + \秒等于 \ minutes + \分钟加上 \ seconds + \秒.\ } // method main } // class MinSecWithIf
对于这种形式的IF语句,格式为:
if (expression) { statement(s) }
该语句必须以关键字“if”开始。之后,括号中为布尔表达式。该布尔表达式必须计算出一个true或者false值。在本实验中,我们检查用户命令行参数的输入。当没有命令行参数输入时,表达式args.length == 0的运算结果为true,程序执行花括号中的语句(我们把花括号之间的语句部分称为块block),从而打印出一些提示信息,然后程序退出;当有命令行参数输入时,布尔表达式的值为false,程序忽略块中的语句,直接执行块后面的语句。
实验2.4.3: (W)练习使用if语句
在Lab02文件夹里,新建一个FeetInches.java文件。这个程序将总英寸转化成英尺和英寸(1英尺=12英寸)。和MinSec.java类似,程序FeetInches.java使用一个输入对话框来提示输入,结果的输出则使用消息对话框。
编写的程序请使用恰当的变量名,注释和输出。强烈建议读者一句一句自己编写代码,而不仅仅是复制、粘贴和修改变量名以及注释。通过这种方式,可以对Java 程序的基础有一个全面的熟悉,并增强在今后各种JAVA考试中的信心。
注意缩排!JAVA编程规范要求每一个缩排要留4个空格,不是一个。用空格键(Space Key),而不是制表键(Tab Key),因为制表键所表示的空格数会因文件编辑器的不同而不同。为了减轻缩排的麻烦,我们通常会在输入一个开括号后立即输入闭括号,然后输入括号里面的语句;而不是等完成括号里面的语句输入后再输入闭括号。
任何使用对话框的程序都包括语句:
System.exit(0);
没有这条语句,包含对话框的程序执行到末尾时不会自动结束。在这种情况下要重新获得DOS窗口的控制,使用[Ctrl]-C键(按住[Ctrl]键,然后在按住[Ctrl]键的同时按下C键)。
6
实验2.4.4: (D)更多if语句
编译、运行程序BusDialog.java 和 Bus.java,一定要理解程序是如何实现的。这两个程序分别使用了对话框和命令行参数,它们都用于计算运送给定数目的乘客所需的车辆数。程序首先计算初步的数目(总人数除以每辆汽车的座位数),然后检查余数是否为0,也就是是否有剩余的乘客。如果是,除了初始估计外,还多需要一辆车。
程序清单2-6:BusDialog.java
// BusDialog.java
// 计算有固定座位数的车在给定乘客数的情况下所需的辆数
import javax.swing.JOptionPane;
public class BusDialog {
public static void main( String args[] ) { // 声明此程序的作用:
JOptionPane.showMessageDialog( null,
\计算有固定座位数的车\\n\ \在给定乘客数的情况下,\\n\ \所需的辆数.\
// 从用户处得到输入数据 int totalPeople = Integer.parseInt(
JOptionPane.showInputDialog( \键入总人数 (整数)\ int seatsPerBus = Integer.parseInt(
JOptionPane.showInputDialog(
\键入每辆车的座位数 (整数)\
// 计算所需车辆数
int bussesNeeded = totalPeople / seatsPerBus; if ( totalPeople % seatsPerBus > 0 ) bussesNeeded = bussesNeeded + 1;
// 显示结果
JOptionPane.showMessageDialog( null,
bussesNeeded + \辆座位为 \ seatsPerBus + \的车 \\n\ \可以运送 \ \个人\
7
System.exit( 0 ); // 终止程序 } // method main } // class Busses
程序清单2-7:Bus.java
// Bus.java
//计算有固定座位数的车在给定命令行参数个乘客数的情况下所需的辆数
public class Bus {
public static void main( String args[] ) { if ( args.length < 2 ) { //声明此程序的作用: System.out.println(
\计算有固定座位数的车\\n\ \在给定乘客数的情况下,\\n\ \所需的辆数.\ ); System.out.println(
\运行此程序请键入 \\n\ \作为命令行参数的 \\n\ \总人数和每辆车座位数 \
System.exit(0); } // if args.length
//从用户处得到输入数据
int totalPeople = Integer.parseInt(args[0]); int seatsPerBus = Integer.parseInt(args[1]);
// 计算所需的车辆数
int bussesNeeded = totalPeople / seatsPerBus; if ( totalPeople % seatsPerBus > 0 ) bussesNeeded = bussesNeeded + 1;
// 显示结果
System.out.println(
bussesNeeded + \辆座位为 \ seatsPerBus + \的车可以 \\n\ \运送 \ \的人 。\
System.exit( 0 ); // 终止程序 } // method main } // class Bus
8
实验2.4.5: (W)练习使用if语句
在Lab02文件夹里面,新建一个NearYuan.java的文件,它会以对话框的形式提示用户输入一个数字,这个数字表示分,程序会计算出与分价值最接近的整数元。例如:350分最接近4元,而249分最接近2元。
实验2.4.6: (D)否定条件
编译Compare.java,使用两个命令行参数运行程序:
java Compare 4 7
该程序的条件语句中使用了否定条件(Negation)。一个条件的否定条件总是:(1)正确的,如果原条件是错误的; (2)错误的,如果原条件是正确的。例如,
number1 >= number2
是
number1 < number2
的否定条件。
注意,条件number1 > number2不是上面第二个条件的否定条件, 因为当number1和number2相等时这两个条件都是错误的。类似的,条件number1 >= number2不是条件 number1 <= number2的否定条件,因为当两个数字相等时这两个条件都是正确的。
对于条件number1 == number2,两个等号符号表示简单的“等于”,我们使用双等号符号来检验两个表达式是否相等,而一个等号是给一个变量赋值。
对于条件 number1 != number2,惊叹号后面接一个等号的意思是“不等于”,很明显,这个条件否定了前一个条件(number1 == number2)。
用不同的整数对运行这个程序,这几个整数对包括以下情形:(1)第一个数小于第二个数;(2)第一个数大于第二个数;(3)第一个数等于第二个数。在每种情况中,程序都会显示正确的比较结果。
程序清单2-8:Compare.java
public class Compare {
public static void main( String args[] ) { if ( args.length < 2 ) {
System.out.print(\此程序将显示两个 \
System.out.println(\作为命令行参数输入的 \ System.out.print(\整数的比较结果 \ System.out.println(\运行此程序键入 :\ System.out.println(\ System.out.print(\使用整数值来替换 \ System.out.println(\和 int2.\
System.exit(0); } // if
9
int number1, // 第一个比较的数 number2; //第二个比较的数 String result; // 存储输出的字符串
// 将String 型转换为int型
number1 = Integer.parseInt( args[0] ); number2 = Integer.parseInt( args[1] );
// 初始化输出为空字符串 result = \
// 进行比较
if ( number1 == number2 )
result = number1 + \
if ( number1 != number2 )
result = number1 + \
if ( number1 < number2 )
result = result + \
if ( number1 >= number2 )
result = result + \
if ( number1 > number2 )
result = result + \
if ( number1 <= number2 )
result = result + \
// 显示结果
System.out.println(\比较结果:\\n\
} // method main } // class Compare
2.4.7: (D)if/else语句
编译、运行OddEven.java并测试不同的命令行参数(奇数和偶数)。 程序清单2-9:OddEven.java // OddEven.java
实验
10