一、实验目的

1、 了解 Java 的数据类型;

2、 掌握各种变量的声明方式;

3、 理解运算符的优先级;

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

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

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

二、实验要求

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

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

3、编写表达式语句、复合语句的程序;

4、编写使用不同选择结构的程序;

5、编写使用不同循环结构结构的程序。

三、实验内容(按要求编程并贴图,并将图按顺序编号命名)

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

1、编写声明不同数据类型变量的程序文件SimpleTypes.java,源代码如下:

public class SimpleTypes{
public static void main(String[] args){
byte b=0x55;
short s=0x55ff;
int i=1000000;
long l=0xfffL;
char c='c';
float f=0.23F;
double d=0.7E-3;
boolean bool=true;
String Str ="这是字符串数据类型";
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("布尔型变量 bool="+bool);
System.out.println("字符串类对象 Str=" + Str);
}
}

2、编译并运行该程序,结果如图 1 所示。

java基本语法编程练习实验结果和分析 java语言基础语法实验报告_贴图

图 1 程序SimpleTypes.java的编译及运行结果贴图

(二)了解各种类型的取值范围和变量的使用范围

 

public class SimpleTypes{
public static void main(String[] args){

String Str ="这是字符串数据类型";
System.out.printf("byte \t数值范围:%x ~ %x\n",Byte.MAX_VALUE, Byte.MIN_VALUE);
System.out.printf("short \t数值范围:%o ~ %o\n",Short.MAX_VALUE,Short.MIN_VALUE);
System.out.printf("int \t数值范围:%d ~ %d\n",Integer.MAX_VALUE, Integer.MIN_VALUE);
System.out.printf("long \t数值范围:%d ~ %d\n",Long.MAX_VALUE, Long.MIN_VALUE);
System.out.printf("char \t数值范围:%c ~ %c\n",Character.MAX_VALUE, Character.MIN_VALUE);
System.out.printf("float \t数值范围:%f ~ %f\n",Float.MAX_VALUE, Float.MIN_VALUE);
System.out.printf("double \t数值范围:%f ~ %f\n",Double.MAX_VALUE, Double.MIN_VALUE);
System.out.printf("boolean \t数值范围:%d ~ %d\n",1, 0);

System.out.println("字符串类对象 Str=" + Str);
}
}

 

程序及运行结果贴图

java基本语法编程练习实验结果和分析 java语言基础语法实验报告_贴图_02

2、Scope.java 文件,通过本程序了解变量的使用范围,源代码如下:

//Scope.java

//Java中变量的作用域

 

public class Scope{

public static void main(String [] args) {

int x = 25;

System.out.println("x="+x);//只有x 有效

{

int y = 36;

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

System.out.println("y="+y); //x,y均有效

}

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

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

//只有x有效,y“out of scope”

}

}

2、编译Scope.java

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

程序运行过程贴图

java基本语法编程练习实验结果和分析 java语言基础语法实验报告_开发语言_03

 

3、修改上面的程序。

public class Scope{
public static void main(String [] args) {
int x = 25;
int y = 35;
System.out.println("x="+x);//只有x 有效
{

System.out.println("x="+x);
System.out.println("y="+y); //x,y均有效
}
System.out.println("x="+x);
System.out.println("y="+y);
//只有x有效,y“out of scope”
}
}

4、成功运行该程序。

java基本语法编程练习实验结果和分析 java语言基础语法实验报告_System_04

 

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

定义在块中的变量作用域只在所在块中可见

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

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

//RelationOp.java

//Java中关系运算符的使用

public static void main(String[] args){

int a=9;

int b=6;

int c=6;

boolean d=a>b; //ture

boolean e=a<b; //false

boolean f=b==c; //ture

boolean g=b!=c; //false

f=(b==c)||(a<b); //ture

g=(b==c)&&(a<b); //false

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

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

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

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

}

}

运行结果贴图

java基本语法编程练习实验结果和分析 java语言基础语法实验报告_贴图_05

 

//Java中逻辑运算符的使用

public class LogicOp {
public static void main(String[] args){
int a=9;
int b=6;
int c=6;
boolean d,e,f,g;
d=!(a>b); //false
e=(a>b)&&(a>c); //ture
f=false;
g=false;
boolean h=b>=c; //ture
boolean i=b<=c; //ture
boolean j=a==b; //false
System.out.println("d="+d);
System.out.println("e="+e);
System.out.println("f="+f);
System.out.println("g="+g);
System.out.println("h="+h);
System.out.println("i="+i);
System.out.println("j="+j);
}
}

2、编译并运行该程序。

java基本语法编程练习实验结果和分析 java语言基础语法实验报告_java_06

 

运行结果贴图

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

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

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. 建立包含复合语句程序,源代码如下。

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

java基本语法编程练习实验结果和分析 java语言基础语法实验报告_java_07

 

程序运行编译及运行过程贴图

java基本语法编程练习实验结果和分析 java语言基础语法实验报告_System_08

 

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

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

程序的复合结构

java基本语法编程练习实验结果和分析 java语言基础语法实验报告_开发语言_09

 

(五) 使用选择语句

1.使用 if...else 语句

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

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

import java.util.*;

public class Test1

{

//编写程序

public static void test(int year)

{

if(year%400==0||(year%4==0&&year%100!=0))

System.out.println("是闰年!");

else

System.out.println("不是闰年!");

}

public static void main(String[]args)

{

int year;

Scanner input = new Scanner(System.in);

for(int i=0;i<4;i++)

{

year=input.nextInt();

test(year);

}

}

}

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

程序运行编译及运行过程贴图

java基本语法编程练习实验结果和分析 java语言基础语法实验报告_贴图_10

 

2.使用 switch 语句

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

温度c<10度,显示 某某℃ 有点冷。要多穿衣服

10≤c<25度,显示 某某℃ 正合适。出去玩吧。

25≤c<35度,显示 某某℃ ℃ 有点热。

c≥35, 显示 某某℃ 太热了!开空调。

上面的某某用变量c的值替换

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

case 2:

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

case 3:

System.out.println(" "+c+"℃ 有点热。"); break;

default:

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

}

}

}

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

程序运行编译及运行过程贴图

java基本语法编程练习实验结果和分析 java语言基础语法实验报告_开发语言_11

 

(六) 使用循环语句

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)编译并运行程序,其结果如图

java基本语法编程练习实验结果和分析 java语言基础语法实验报告_System_12

 

程序运行编译及运行过程贴图

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); // 跳过回车键(skip方法跳过和丢弃输入流中数据的 n 个字节)

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)编译源程序。

java基本语法编程练习实验结果和分析 java语言基础语法实验报告_java_13

 

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

java基本语法编程练习实验结果和分析 java语言基础语法实验报告_System_14

 

程序运行编译及运行过程贴图

思考:注释掉语句System.in.skip(2);看运行结果,解释此时输出结果发生变化的原因。

3.do…while 循环语句练习

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

(2) 程序源代码如下。

程序代码

 

import com.sun.org.apache.xerces.internal.xs.StringList;

public class sum {
public static void main(String[] args){
int i=0;
int sum =0;
String left="";

do {
i++;
Integer a = new Integer(i);
String tmp = a.toString();
left += tmp+"+";
sum+=i;
}while (i<100);
Integer a = new Integer(sum);
String Sum_str = a.toString();
String equation=left.substring(0,left.length()-1)+"="+Sum_str;

System.out.println(sum);
System.out.println(equation);


}
}

程序运行编译及运行过程贴图

java基本语法编程练习实验结果和分析 java语言基础语法实验报告_java基本语法编程练习实验结果和分析_15

java基本语法编程练习实验结果和分析 java语言基础语法实验报告_java_16

(七)综合程序设计

1模拟从一副扑克牌52张中选择一张。程序中牌的大小应显示为(Ace,1,2,3,4,5,6,7,8,9,10,Jack,Queen,King),牌的花色应该显示为(Diamonds(方块),Hearts(红心),Spades(黑桃),Clubs(梅花))。程序某一次运行时的输出如下

程序源代码

package lab_2;

public class Card{
public static void main(String[] args) {
// number的值对应牌的大小,color通过switch转为花色
int number = (int)(Math.random() * 13 + 1);
int color = (int)(Math.random() * 4);

// number转为String类型
String str_Number;
if(number == 1)
str_Number = "ACE";
else if(number == 11)
str_Number = "Jack";
else if(number == 12)
str_Number = "Queen";
else if(number == 13)
str_Number = "King";
else
str_Number = "" + number;

// color转为String类型
String str_Color;
switch (color){
case 0:str_Color="Clubs";break;
case 1:str_Color="Diamonds";break;
case 2:str_Color="Heart";break;
default:str_Color="Spades";
}

// 输出
System.out.println("The card you picked is " + str_Number + " of " + str_Color);
}
}

 

程序运行结果贴图

java基本语法编程练习实验结果和分析 java语言基础语法实验报告_java基本语法编程练习实验结果和分析_17

 

2.提示用户从控制台输入一句英文,分别统计句子中的每个元音字母(忽略大小写)的个数,并显示输出。英文的5个元音字母为A E I O U

程序源代码

//在package 判断字符出现次数;
import java.util.Scanner;
public class aeiou {
private static Scanner sc;

public static void main(String[] args){
System.out.println("输入你想要输入的一句英文");
sc = new Scanner(System.in);
char[]a=new char[100];
int A=0;
int E=0;
int I=0;
int O=0;
int U=0;
String str;
str=sc.next();
System.out.println(str.length());
for(int i=0;i<str.length();i++){
a[i]=str.charAt(i);
if(a[i]=='A'||a[i]=='a'){
A++;
}
if(a[i]=='E'||a[i]=='e'){
E++;
}
if(a[i]=='I'||a[i]=='i'){
I++;
}
if(a[i]=='O'||a[i]=='o'){
O++;
}
if(a[i]=='U'||a[i]=='u'){
U++;
}
}
System.out.println("A: "+" "+ A +"E: "+ E +" "+"I: "+ I+" " +"O:"+ O +" "+"U: "+ U+" ");
}
}
//a[]=str.charAt(i);
//获取str中的第i个字符

程序运行结果贴图

java基本语法编程练习实验结果和分析 java语言基础语法实验报告_System_18

 

java基本语法编程练习实验结果和分析 java语言基础语法实验报告_java基本语法编程练习实验结果和分析_19