实验 1 Java语言的基本语句练习.docx
- 文档编号:18560821
- 上传时间:2023-08-19
- 格式:DOCX
- 页数:20
- 大小:126.76KB
实验 1 Java语言的基本语句练习.docx
《实验 1 Java语言的基本语句练习.docx》由会员分享,可在线阅读,更多相关《实验 1 Java语言的基本语句练习.docx(20页珍藏版)》请在冰点文库上搜索。
实验1Java语言的基本语句练习
实验1Java语言的基本语句练习
一、实验目的
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文件,通过本程序了解变量的使用范围,源代码如下。
publicclassLX2_2{
staticinti=10;
publicstaticvoidmain(Stringargs[]){
{
intk=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.建立使用关系运算符和逻辑运算符的程序文件,源代码如下。
classLX2_3{
publicstaticvoidmain(Stringargs[]){
inta=25,b=20,e=3,f=0;
booleand=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.建立包含表达式语句程序,源代码如下。
classLX2_5{
publicstaticvoidmain(String[]args){
intk,i=3,j=4;
k=20*8/4+i+j*i;
System.out.println("表达式(20*8/4+i+j*i)="+k);
}
}
2.建立包含复合语句程序,源代码如下。
classLX2_6{
publicstaticvoidmain(Stringargs[]){
intk,i=3,j=4;
k=i+j;
System.out.println("在复合块外的输出k="+k);
{
floatf;
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)编写源程序文件,代码如下。
publicclassLX2_7{
publicstaticvoidmain(Stringargs[]){
booleanleap;
intyear=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;
elseif(year%100!
=0)leap=true;
elseif(year%400!
=0)leap=false;
elseleap=true;
if(leap==true)
System.out.println(year+"年是闰年");
elseSystem.out.println(year+"年不是闰年");
if(leap==true)System.out.println(year+"年是闰年");
elseSystem.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)程序源代码如下。
classLX2_8{
publicstaticvoidmain(Stringargs[]){
intc=38;
switch(c<10?
1:
c<25?
2:
c<35?
3:
4){
case1:
System.out.println(""+c+"℃有点冷。
要多穿衣服。
");
case2:
System.out.println(""+c+"℃正合适。
出去玩吧。
");
case3:
System.out.println(""+c+"℃有点热。
");
default:
System.out.println(""+c+"℃太热了!
开空调。
");
}
}
}
(3)编译运行程序,其结果如图2.8所示。
图2.8
修改后程序:
classLX2_8{
publicstaticvoidmain(Stringargs[]){
intc=38;
switch(c<10?
1:
c<25?
2:
c<35?
3:
4){
case1:
System.out.println(""+c+"℃有点冷。
要多穿衣服。
");
break;
case2:
System.out.println(""+c+"℃正合适。
出去玩吧。
");
break;
case3:
System.out.println(""+c+"℃有点热。
");
break;
default:
System.out.println(""+c+"℃太热了!
开空调。
");
break;
}
}
}
(七)使用循环语句
1.for循环语句练习
(1)程序功能:
按5度的增量打印出一个从摄氏温度到华氏温度的转换表。
(2)程序源代码如下。
classLX2_9{
publicstaticvoidmain(Stringargs[]){
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.分析下面的程序,说出下面的程序为什么是死循环?
classSum{
publicstaticvoidmain(Stringargs[]){
inti=1,n=10,s=0;
while(i<=n)
s=s+i;
System.out.println("s="+s);
}
}
答:
因为i,n值不变,i恒小于n,所以while循环就会一直成立,因此死循环。
2.分析下面源程序的结构,写出运行结果。
classCircleArea{
finalstaticdoublePI=3.14159;
publicstaticvoidmain(Stringargs[]){
doubler1=8.0,r2=5.0;
System.out.println("半径为"+r1+"的圆面积="+area(r1));
System.out.println("半径为"+r2+"的圆面积="+area(r2));
}
staticdoublearea(doubler){
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;
publicclassSecond{
publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
Scannercin=newScanner(System.in);
Stringgrade=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++){
intj=i*10
while(j<100){
if(j==10)break;
j=j+5;
}
}
解:
完整的程序如下所示:
publicclass4{
publicstaticvoidmain(stringargs]){
Inti;
bh1:
for(i=0;i-10;i++){
intj=i*10;
while(j<100){
if(j==10)
break;
j=j+5;
continuebh1;
}
}
}
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 Java语言的基本语句练习 Java 语言 基本 语句 练习