JAVA快速入门练习(精品).docx
《JAVA快速入门练习(精品).docx》由会员分享,可在线阅读,更多相关《JAVA快速入门练习(精品).docx(24页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、第2章实验-JAVA根本语法1(1)算术运算符、算术表达式(2)布尔及关系算符和表达式(3) if/else控制结构(4) while循环语句(5)练习使用对话框在上一章的实验中所看到的程序都是顺序执行的。本章实验教程将介绍如何使用JAVA选择控制 语句,使程序能基于条件进行判断,从而选择执行相应的逻辑分支。以下的实验包括4种类型,每种类型都用括号里面的字母表示:D -例程,表示这是一个例子,要求练习者阅读指南和代码;I-交互式练习,练习者完成实验指定的简单任务,如修改局部代码,观察程序运行时的变化等;W -热身练习,练习者的编程工作量逐渐加大。P -完整编程,要求练习者根据要求,完成完整的J
2、AVA程序。从本实验教程光盘中拷贝Lab02文件目录到本地磁盘,如C:盘。Lab02文件目录中将包含本次 实验所需的所有资料。Lab02的相关资料也可以从本实验教程的网站下载。实验任务实验:(D)运行四个Java程序在已经安装 的电脑上编译、运行4个JAVA程序Int、和,观察程序的运行结果。在这四个 程序中,运用了另外一种键盘读入的形式JOptionPane对话框。这种图形界面对用户来讲比命令行的 数据输入方式更友好。用记事本或EditPlus翻开这几个程序,比拟程序源代码。、 和 都是按照这样的步骤执行的:(1)提示用户输入数字。这些数字是以字符串的形式 被读取,而后又被转换成数字;(2)
3、适当的运算;(3)输出显示。见程序清单2-1包括以下的语句:int totalSeconds = Integer.parselnt(JOptionPane.showInputDialog(/将String型转换为int型number 1 = Integer.parselnt( argsO);number2 = Integer.parselnt( args| 1 );/初始化输出为空字符串 result =,n;/进行比拟if ( numberl = number!) result = numberl + = + number2;if ( numberl != number2 )result 二
4、 numberl + != + number2;if ( numberl number2 )result = result + ”n” + numberl + “ = number!)result = result + nnn + numberl + ” = + number2;if ( numberl number?)result = result + nnn + numberl + ” + number2;if ( numberl = number!)result = result + ”n” + numberl + ” jauac DigitParts.jauaC-Lab02jaua D
5、igitParts 365 365分离后的结果是3 6 5图2.1实验运行结果例如实验:(P)编写程序DigitParts为DigitParts. java保存一个副本,命名为DigitPart。在后一个文件里,相应地修改类名和注 释。修改DigitPart,当用户的输入不是三位数时如45, 4258),程序会显示用户友好的错误提示 信息。当然,如果用户没有正确输入命令行参数,这个程序也应该显示用户友好的的错误提示信息。实验:(W) JAVA中符号+的使用编译并运行Plus, java,然后用记事本翻开它,这个程序在DOS窗口输出:683667852程序清单 2-10: Plus. java/
6、 Plus.java/演示加法和字符串连接public class Plus public static void main(String args)System.out.println(23 + 45 + ” 366 ” + 78 + 52); / method main / class PlusJAVA语言中,加号“+可以用做加法运算(当它出现在两个数字之间),也可以用做字符串的 连接当它出现在两个字符串之间,或者在一个字符串和一个数字之间。在这种情况下,数字会被自 动转换成字符串然后和另一个字符串连接)。Plus, java程序中System. out. printin语句里的四个加号按
7、照从左到右的顺序被依次定义。最左 端的加号是加法运算,因为它出现在两个整数之间;第二个加号是字符串连接运算,因为它出现在一个 数学表达式23 + 45和字符串“ 366 ”之间;第三个加号是字符串连接运算,因为它出现在字符 表达式23 + 45 + “ 366 ”也就是“68 366”和正整数78之间。最右边的加号是字符串连接运算, 因为在它左边所有的表达式在第四个加号未定义之前已经运算并生成了字符串“68 366 78” 。最终 生成的字符串为“68366 7852和代数运算一样,在表达式中加括号可以改变运算的顺序。为Plus. java保存一个副本,命名 为MyPlus. java,在源代
8、码中只插入两个括号,使程序输出成为:68366130除了参加两个括号之外,代码不要做任何其他的修改。实验:(I)浮点数的比拟.编译和运行程序,使用三个浮点数类型的命令行参数,这个程序会找出这三个数中最大的那个数。程序清单271 : /public class Comp3Flo public static void main( String args) if ( args.length number?) largest = numberl;elselargest = number2;if ( number3 largest) largest = number3;System, out. prin
9、tin(数字” + numberl+ , + number2+ ”,和+ number3+ ” 的最大数为 “ +largest+ / method main / class Comp3Flo如果输入没有小数点的命令行参数,这些参数会被自动的转换成浮点数,然后用小数点的形式显 示出来。例如,C:LabO2java Comp3Flo 614.2数字6.0, 1.0,和的最大数为.最小的数,中间的数,最大的数)z x)z 1 2 3 4 5 6 z(x z( z( z( z/l z(用不同的输入测试这个程序。测试3个不同数字的6种不同组合: 最小的数,最大的数,中间的数 中间的数,最小的数,最大的
10、数 中间的数,最大的数,最小的数 最大的数,最小的数,中间的数 最大的数,中间的数,最小的数即使三个数字中有两个或两个以上的数字相等时,程序也可以正确地找出最大的数字。仔细阅读 这个程序,理解程序中每一行代码的意义。找出三个数字中最大数的关键代码如下:float largest;if ( numberl number2 )largest = numberl;elselargest = number2;if ( number3 largest ) largest = number3;第一行代码只声明(declare) 了变量largest,并没有给largest变量赋初始值。largest变量的
11、初始值是由if/else结构中条件numberl number2决定的。如果numberl大于number2, 执行初始赋值语句largest=numberl,变量largest的初始值等于numberl;反之,变量largest 的初始值等于number2o.为保存一个副本,命名为My。修改My源码的类名和注释,编译程序,确保程序正确运行。修改My源码。在变量largest声明前加上注释,在if/else结构中声明变量并同时对其赋初 值。修改后的代码段如下:/ float largest;if ( numberl number2 )float largest = numberl;elsefl
12、oat largest = number2;试着编译修改后的程序。显然,编译不会通过。这是由于变量largest在赋初值前只能声明一 次。1 .修改My源码,使之能正确编译。程序编译通过后,进一步修改源码。用一对if结构代替if/else结构,修改后的代码段如下: float largest;if ( numberl number2 )largest = numberl;if ( numberl largest)A1错误编译错误的原因在于编译器(Compiler) 无法识别条件 numberlnumber2 是条件 numberl (二number2的否认条件。因此,编译器认为可能在某种情况下
13、,这两个布尔表达式都为false。当变 量 largest 在if ( number3 largest )语句中使用时,两个初始赋值语句可能都没有执行,变量largest可能尚未初始化。2 .目前对变量初始化问题的讨论只局限于方法里的局部变量。在完成的实验中,main方法里定义的变量都是局部变量。对于这种类型的变量,必须明确地进行 初始化。如果在没有初始化之前就试图使用它,程序就无法编译。如果初始化的语句在if块中,必 须要让变量在第一次使用前能够得到赋值。也就是说,把初始化语句放在只有if块的条件判断语句 中编译不能通过,因为执行的时候可能不符合if后面的判断条件,如此一来初始化语句就不会被
14、执 行了,从而违反了局部变量使用前必须初始化的规定。但如果使用if/else结构并且在每个分支中都有初始化语句,程序就可以通过编译,因为无论如 何,总有至少一条初始化语句会被执行,不会发生使用前未被初始化的情况。实验:(P)编写程序Comp4FIo.java程序使用四个浮点数为命令行参数,并找出这四个数中的最大数和最小数。程序的执行和输出 如下:C;LabO2java Comp4Flo 4312在数字4.0, 3.0, 1.0,和2.0中,最大值为4.0,最小值为1.0.如果用户输入的参数少于四个,程序将输出用户友好的错误提示信息。由于4个不同数字的排列组合方式有24种可能。为了便于程序的测试
15、,使用批处理文件 Comp4Flo. bato扩展名为.bat的文件是批处理文件,它是无格式的文本文件,包含一条或多条命令。在DOS命 令提示窗口中键入批处理文件的名称,系统就会按照该文件中各个命令出现的顺序来逐个运行它们。 使用批处理文件也被称为批处理程序或脚本),可以简化日常或重复性任务。Comp4Flo. bat批处理文件位于Lab02目录下,在DOS命令提示窗口中,执行:C:Lab02Comp4Flo程序清单 2-12: Comp4F I o. batjava Comp4Flo 12 3 4java Comp4Flo 12 4 3java Comp4Flo 13 2 4 pauseja
16、va Comp4Flo 13 4 2java Comp4Flo 14 2 3java Comp4Flo 14 3 2 pausejava Comp4Flo 2 13 4java Comp4Flo 2 14 3java Comp4Flo 2 3 14 pausejava Comp4Flo 2 3 4 1java Comp4Flo 2 4 13java Comp4Flo 2 4 3 1 pausejava Comp4Flo 3 1 24java Comp4Flo 3 14 2java Comp4Flo 3 2 14 pausejava Comp4Flo 3 2 4 1java Comp4Flo 3
17、 4 12java Comp4Flo 3 4 2 1 pausejava Comp4Flo 4 12 3java Comp4Flo 4 13 2java Comp4Flo 4 2 13pausejava Comp4Flo 4 2 3 1java Comp4Flo 4 3 12java Comp4Flo 4 3 2 1 pausejava Comp4Flojava Comp4Flojava Comp4Flo pausejava Comp4Flojava Comp4Flojava Comp4Flo实验:(D)简单介绍Deci ma I Format的用法编译、运行,查看源代码。DecimalFor
18、mat用于格式化十进制数字。具体的使用步骤: (1)创立对象DecimalFormat,关键代码如下:DecimalFormat df2 = new DecimalFormat(n 0.00 n);DecimalFormat df3 = new DecimalFormat(0.000);(2)使用DecimalFormat对象,关键代码如下:System.out.printin(nfloat + “ + nSystem.out.printin( double + “ + nx和y分别是float和double类型的变量。 节,只需要知道如何使用就可以了。” + df2.format(x) +
19、df3.format(x) + x);+ df2.format(y)+ df3.format(y)+ y);目前我们不必理解对象DecimalFormat工作的细程序清单 2-13: Dec ima IFormatDemo. javaimport java.text.DecimalFormat;public class DecimalFormatDemo public static void main(String args) DecimalFormat df2 = new DecimalFormat(,0.00n);DecimalFormat df3 = new DecimalFormat(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA 快速 入门 练习 精品
限制150内