实验 1 Java语言的基本语句练习

发布时间:2020-06-26 19:31:23   来源:文档文库   
字号:

实验 1 Java语言的基本语句练习

一、实验目的

1. 了解 Java的数据类型

2. 掌握各种变量的声明方式。

3. 理解运算符的优先级。

4. 掌握 Java基本数据类型、运算符与表达式、数组的使用方法。

5. 理解 Java程序语法结构,掌握顺序结构、选择结构和循环结构语法的程序设计方法。

6. 通过以上内容,掌握 Java语言的编程规则。

二、实验要求

1. 编写一个声明 Java不同数据类型变量的程序。

2. 编写一个使用运算符、表达式、变量的程序。

3. 编写一个使用 Java数组的的程序。

4. 编写表达式语句、复合语句的程序。

5. 编写使用不同选择结构的程序。

6. 编写使用不同循环结构结构的程序。

三、实验内容

(一) 声明不同数据类型的变量

1.编写声明不同数据类型变量的程序文件。

public class LX2_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.建立 LX2_2.java文件,通过本程序了解变量的使用范围,源代码如下。

public class LX2_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.编译 LX2_2.java

此时会出现错误提示如图 2.2所示。因为变量 k在方法块中声明,在方法块之外它是不存在的,所以编译时会出错。

图 2.2

3.修改上面的程序,使其运行正确。

4.成功运行该程序。

思考:LX2_2.java程序说明了什么问题?

成员变量在整个类内有效,其有效性与它书写的先后位置无关,

局部变量只在方法内有效,而且与其声明的位置有关。

(三) 使用关系运算符和逻辑运算符

1.建立使用关系运算符和逻辑运算符的程序文件,源代码如下。

class LX2_3 {

public static void main(String args[]) {

int a=25, b=20, e=3, f=0;

boolean d=a

}

2.补充上面的程序代码,编译并运行该程序,结果如图 2.3所示。

图 2.3

(四) 使用数组

1.建立使用数组的程序,本程序建立了一个长度为 5的1维数组,一个长度为 12的 2维数组,

源代码如下:

public class LX2_4 {

public static void main(String args[]) {

int a[]=new int[5];

int arr1[][]=new int[3][4];

a[0]=10;

a[1]=10+a[0];

a[2]=30;

a[3]=40;

a[4]= a[1]+ a[2];

arr1[0][0]=0; arr1[0][1]=1; arr1[0][2]=2;

arr1[1][0]=3; arr1[1][1]=4; arr1[1][2]=5;

arr1[2][0]=6; arr1[2][1]=7; arr1[2][2]=8;

System.out.println("a["+0+"] = "+a[0]);

System.out.println("a["+1+"] = "+a[1]);

System.out.println("a["+2+"] = "+a[2]);

System.out.println("a["+3+"] = "+a[3]);

System.out.println("a["+4+"] = "+a[4]);

System.out.println("arr1("+0+","+0+") = "+arr1[0][0]);

System.out.println("arr1("+0+","+1+") = "+arr1[0][1]);

System.out.println("arr1("+0+","+2+") = "+arr1[0][2]);

System.out.println("arr1("+1+","+0+") = "+arr1[1][0]);

System.out.println("arr1("+1+","+1+") = "+arr1[1][1]);

System.out.println("arr1("+1+","+2+") = "+arr1[1][2]);

}

}

2.编译并运行程序,结果如图 2.4所示。

图 2.4

(五) 使用表达式语句与复合语句

1. 建立包含表达式语句程序,源代码如下。

class LX2_5{

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 LX2_6{

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. 编译并运行上述两个源程序,结果如图2.5、2.6所示。

图2.5 图2.6

4. 将变量 i在块内定义会怎样?改变其他变量的位置看看会发生什么变化。

思考:指出程序的复合结构以及变量的使用范围。

定义变量可能有三种情况: 

(1)在函数的开头定义;

(2)在函数内的复合语句内定义.;

(3)在函数的外部定义.;

 在一个函数内部定义的变量只在本函数范围内有效,也就是说只有在本函数内才能引用它们,在此函数以外是不能使用这些变量的.在复合语句内定义的变量只在本复合语句范围内有效,只有在本复合语句内才能引用它们.在该复合语句以外是不能使用这些变量的.以上这些成为"局部变量".

程序的编译单位是源程序文件,一个源文件可以包含一个或若干个函数.在函数内定义的变量是局部变量,而在函数之外定义的变量称为外部变量,外部变量是全局变量(也称全程变量).全局变量可以为本文件中其他函数所共用.它的有效范围为从定义变量的位置开始到本源文件结束.

Java有两种变量bai范围:全局和局部du。如果在任何函数定义之外声明了一zhi个变量,则该变量为全局变量,且dao该变量的值在整个持续范围内都可以访问和修改。如果在函数定义内声明了一个变量,则该变量为局部变量。每次执行该函数时都会创建和破坏该变量;且它不能被该函数外的任何事物访问。

(六) 使用选择语句

1.使用 if...else语句

(1)程序功能:使用 if...else语句构造多分支,判断某一年是否为闰年。闰年的条件是符合下面二者之一:能被 4整除,但不能被 100整除;能被 4整除,又能被 100整除。

(2)编写源程序文件,代码如下。

public class LX2_7 {

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+" 年不是闰年");

if (leap==true) System.out.println(year+" 年是闰年");

else System.out.println(year+" 年不是闰年");

}

}

(3)补充上面的程序代码,编译运行程序,列出运行结果

public class LX2_7 {

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语句

(1)程序功能:在不同温度时显示不同的解释说明。

(2)程序源代码如下。

class LX2_8{

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+"℃ 太热了!开空调。");

}

}

}

(3)编译运行程序,其结果如图 2.8所示。

图 2.8

修改后程序:

class LX2_8{

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+"℃ 有点冷。要多穿衣服。");

break;

case 2: System.out.println(" "+c+"℃ 正合适。出去玩吧。");

break;

case 3: System.out.println(" "+c+"℃ 有点热。");

break;

default: System.out.println(" "+c+"℃ 太热了!开空调。");

break;

}

}

}

(七) 使用循环语句

1.for循环语句练习

(1) 程序功能:按 5度的增量打印出一个从摄氏温度到华氏温度的转换表。

(2) 程序源代码如下。

class LX2_9{

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);

}

}

(3)补充上面的程序代码,编译并运行程序,其结果如图 2.9所示。

图 2.9

2.while循环语句练习

(1)程序功能:运行程序后从键盘输入数字 1/2/3后,可显示抽奖得到的奖品;如果输入其它数字或字符显示“没有奖品给你!”。

(2)编译源程序。

import java.io.*;

class LX2_10 {

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(" 真不幸,你没有奖品 ! 下次再来吧。 ");

}

}

}

}

(3)在命令提示符窗口运行程序,然后分别按1、2、3、r结果如图 2.10所示。

图 2.10

3.do…while循环语句练习

(1) 程序功能:求1+2+…+100之和,并将求和表达式与所求的和显示出来。

class LX2_11 {

public static void main(String args[]) {

int n=1, sum=0;

do {

sum+=n++;

} while (n<=100);

System.out.println("1+2 +...+100 ="+sum);

}

}

(2)编译并运行程序,结果如图2.11所示。

图 2.11

4.多重循环练习

(1)输出九九乘法表的程序,

public class LX2_12 {

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();

}

}

}

(2)编译并运行程序,结果如图 2.12所示。

图 2.12

四、练习题

1.分析下面的程序,说出下面的程序为什么是死循环?

class Sum {

public static void main(String args[]) {

int i=1,n=10,s=0;

while (i<=n)

s = s + i;

System.out.println("s="+s);

}

}

答:因为i,n值不变,i恒小于n,所以while循环就会一直成立,因此死循环。

2.分析下面源程序的结构,写出运行结果。

class CircleArea {

final static double PI=3.14159;

public static void main(String args[]) {

double r1=8.0, r2=5.0;

System.out.println("半径为"+r1+"的圆面积="+area(r1));

System.out.println("半径为"+r2+"的圆面积="+area(r2));

}

static double area(double r) {

return (PI*r*r);

}

}

源程序创建了一个自定义类CircleArea,该类包含了一个类成员变量PI,一个类方法area 将返回圆面积。在主方法main中定义了两个实例变量r1与r2,并调用area方法输入圆面积。程序结果如图所示,

3.编写程序,根据考试成绩的等级打印出百分制分数段。设 A为 90分以上、B为 80分以上、C为 70分以上、D为 60分以上、E为 59分以下。要求在程序中使用开关语句。

importjava.util.Scanner;

publicclass Second {

   publicstaticvoid main(String[] args) {

      // TODOAuto-generated method stub

      Scanner cin=new Scanner(System.in);

      String grade=cin.nextLine();

      switch(grade) {

      case"A":

         System.out.println("90分以上");

         break;

      case"B":

         System.out.println("80分以上");

         break;

      case"C":

         System.out.println("70分以上");

         break;

      case"D":

         System.out.println(" 60分以上");

         break;

case"E":

         System.out.println(" 59分以下");

         break;

         default:

            System.out.println("你输入的查询等级有误!!!");

            cin.close();  

4.完整下面的程序,利用 break语句和带标号的 break语句分别退出一重循环和二重循环。

for (i=0; i<10; i++) {

int j=i*10

while(j<100) {

if (j==10) break;

j=j+5;

}

}

解:完整的程序如下所示:

public class 4{

public static void mainstring args]{

Int i

bh1

fori=0i-10i++{

int j=i*10

whilej<100{

ifj==10

break

j=j+5

continue bh1

}

}

}

}

本文来源:https://www.2haoxitong.net/k/doc/4e447caef342336c1eb91a37f111f18582d00c18.html

《实验 1 Java语言的基本语句练习.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式