实验 Java 基本语法练习
一、实验目的
1. 了解 Java 的数据类型
2. 掌握各种变量的声明方式。
3. 理解运算符的优先级。
4. 掌握 Java 基本数据类型、运算符与表达式。
5. 理解 Java 程序语法结构,掌握顺序结构、选择结构和循环结构语法的程序设计方法。
6. 通过以上内容,掌握 Java 语言的编程规则。
二、实验要求
1. 编写一个声明 Java 不同数据类型变量的程序。
2. 编写一个使用运算符、表达式、变量的程序。
3. 编写一个使用 Java 数组的的程序。
4. 编写表达式语句、复合语句的程序。
5. 编写使用不同选择结构的程序。
6. 编写使用不同循环结构结构的程序。
三、实验内容
(一) 声明不同数据类型的变量
1.编写声明不同数据类型变量的程序文件 KY2_1.java,源代码如下。
public class KY2_1 {
public static void main(String args[]) {
byte b=0x55;
short s=0x55ff;
int i=1000000;
long l=0xffffL;
char c='a';
float f=0.23F;
double d=0.7E-3;
boolean B=true;
String S="这是字符串类数据类型";
System.out.println("字节型变量 b = "+b);
System.out.println("短整型变量 s = "+s);
System.out.println(" 整型变量 i = "+i);
System.out.println("长整型变量 l = "+l);
System.out.println("字符型变量 c = "+c);
System.out.println("浮点型变量 f = "+f);
System.out.println("双精度变量 d = "+d);
System.out.println("布尔型变量 B = "+B);
System.out.println("字符串类对象 S = "+S);
}
}
2. 编译并运行该程序
(二) 了解变量的使用范围
1.建立 KY2_2.java 文件,通过本程序了解变量的使用范围,源代码如下。
public class KY2_2 {
static int i=10;
public static void main(String args[]) {
{
int k=10;
System.out.println("i="+i);
System.out.println("k="+k);
}
System.out.println("i="+i);
System.out.println("k="+k);
//编译时将出错,已出 k 的使用范围
}
}
2.编译 KY2_2.java
此时会出现错误提示。因为变量 k 在方法块中声明,在方法块之外它是不存在的, 所以编译时会出错。
3.修改上面的程序。
4.成功运行该程序。
思考:KY2_2.java 程序说明了什么问题?
(三) 使用关系运算符和逻辑运算符
1.建立使用关系运算符和逻辑运算符的程序文件,源代码如下。
class KY2_3 {
public static void main(String args[]) {
int a=25, b=20, e=3, f=0;
boolean d=a System.out.println("a=25,b=20,e=3,f=0");
System.out.println("因为关系表达式 a if (e!=0 && a/e>5)
System.out.println("因为 e 非 0 且 a/e 为 8 大于 5,所以输出 a/e= "+a/e);
if (f!=0 && a/f>5)
System.out.println("a/f = "+a/f);
else
System.out.println("因为 f 值为 0,所以输出 f = "+f);
}
}
2.编译并运行该程序,结果如图 2.3 所示。
(四) 使用表达式语句与复合语句
1. 建立包含表达式语句程序,源代码如下。
class KY2_4{
public static void main(String[] args) {
int k, i=3, j=4;
k=20*8/4+i+j*i;
System.out.println("表达式(20*8/4+i+j*i)="+k);
}
}
2. 建立包含复合语句程序,源代码如下。
class KY2_5{
public static void main(String args[]) {
int k, i=3, j=4;
k=i+j;
System.out.println("在复合块外的输出 k="+k);
{
float f;
f=j+4.5F;
i++;
System.out.println("在复合块内的输出 f="+f);
System.out.println("在复合块内的输出 k="+k);
}
System.out.println("在复合块外的输出 i="+i);
}
}
3. 编译并运行上述两个源程序
4. 将变量 i 在块内定义会怎样?改变其他变量的位置看看会发生什么变化。
思考:指出程序的复合结构以及变量的使用范围。
(五) 使用选择语句
1.使用 if...else 语句
¨ 程序功能:使用 if...else 语句构造多分支,判断某一年是否为闰年。闰年的条件是符合下面二者之一:能被 4 整除,但不能被 100 整除;能被 4 整除,又能被 100 整除。
¨ 编写源程序文件,代码如下。
public class KY2_6 {
public static void main(String args[]) {
boolean leap;
int year=2005;
if ((year%4==0 && year%100!=0) || (year%400==0)) // 方法 1
System.out.println(year+" 年是闰年");
else
System.out.println(year+" 年不是闰年");
year=2008; // 方法 2
if (year%4!=0)
leap=false;
else if (year%100!=0)
leap=true;
else if (year%400!=0)
leap=false;
else
leap=true;
if (leap==true)
System.out.println(year+" 年是闰年");
else
System.out.println(year+" 年不是闰年");
year=2050; // 方法 3
if (year%4==0) {
if (year%100==0) {
if (year%400==0)
leap=true;
else
leap=false;
}
else
leap=false;
}
else
leap=false;
if (leap==true)
System.out.println(year+" 年是闰年");
else
System.out.println(year+" 年不是闰年");
}
}
¨ 编译运行程序
思考:本程序中有几个选择语句,哪些具有嵌套关系?
2.使用 switch 语句
¨ 程序功能:在不同温度时显示不同的解释说明。
¨ 程序源代码如下。
class KY2_7{
public static void main(String args[]) {
int c=38;
switch (c<10?1:c<25?2:c<35?3:4) {
case 1:
System.out.println(" "+c+"℃ 有点冷。要多穿衣服。");
case 2:
System.out.println(" "+c+"℃ 正合适。出去玩吧。");
case 3:
System.out.println(" "+c+"℃ 有点热。");
default:
System.out.println(" "+c+"℃ 太热了!开空调。");
}
}
}
¨ 编译运行程序
(六) 使用循环语句
1. for 循环语句练习
¨ 程序功能:按 5 度的增量打印出一个从摄氏温度到华氏温度的转换表。
¨ 程序源代码如下。
class KY2_8{
public static void main (String args[]) {
int h,c;
System.out.println("摄氏温度 华氏温度");
for (c=0; c<=40; c+=5) {
h=c*9/5+32;
System.out.println(" "+c+" "+h);
}
}
}
¨ 编译并运行程序,其结果如图 2.9 所示。
2. while 循环语句练习
¨ 程序功能:运行程序后从键盘输入数字 1/2/3 后,可显示抽奖得到的奖品;如果输入其它数
¨ 字或字符显示“没有奖品给你!”。
¨ 程序源代码如下。
import java.io.*;
class KY2_9 {
public static void main(String args[]) throws IOException {
char ch;
System.out.println("按 1/2/3 数字键可得大奖!");
System.out.println("按空格键后回车可退出循环操作.");
while ((ch=(char)System.in.read())!=' ')
{
System.in.skip(2); // 跳过回车键
switch (ch) {
case '1':
System.out.println("恭喜你得大奖,一辆汽车!");
break;
case '2':
System.out.println("不错呀,你得到一台笔记本电脑!");
break;
case '3':
System.out.println("没有白来,你得到一台冰箱!");
break;
default:
System.out.println("真不幸,你没有奖品!下次再来吧。");
}
}
}
}
¨ 编译源程序。
¨ 在命令提示符窗口运行程序,然后分别按 1、2、3、r ,记录结果。
3.do…while 循环语句练习
¨ 程序功能:求 1+2+…+100 之和,并将求和表达式与所求的和显示出来。
¨ 程序源代码如下。
class KY2_10 {
public static void main(String args[]) {
int n=1, sum=0;
do {
sum+=n++;
}
while (n<=100);
System.out.println("1+2+...+100 ="+sum);
}
}
¨ 编译并运行程序
4.多重循环练习
¨ 输出九九乘法表的程序,源代码如下。
public class KY2_11
{
public static void main(String args[])
{
int i,j,n=9;
System.out.print(" * |");
for (i=1;i<=n;i++)
System.out.print(" "+i);
System.out.print("\n-------|");
for (i=1;i<=n;i++)
System.out.print("----");
System.out.println();
for (i=1;i<=n;i++)
{
System.out.print(" "+i+" |");
for (j=1;j<=i;j++)
System.out.print(" "+i*j);
System.out.println();
}
}
}
¨ 编译并运行程序
评论
查看更多