实验二 Java基本数据类型与控制语句
【目的】
① 掌握char型数据和int型数据之间的相互转换,同时了解unicode字符表; ② 掌握使用if…else if多分支语句; ③ 使用if…else分支和while循环语句解决问题。 【内容】
1.输出希腊字母表。
? 实验要求:
编写一个Java应用程序,该程序在命令行窗口输出希腊字母表。 ? 程序:
GreekAlphabet.java
public class GreekAlphabet {
public static void main (String args[ ]) {
int startPosition=0,endPosition=0; char cStart='α',cEnd='ω'; startPosition=cStart;
//cStart做int型转换据运算,并将结果赋值给startPosition
endPosition=cEnd; //cEnd做int型转换运算,并将结果赋值给endPosition System.out.println(\希腊字母\\'α\\'在unicode表中的顺序位置:\ System.out.println(\希腊字母表:\ for(int i=startPosition;i<=endPosition;i++) {
char c='\\0';
c=(char)i; //i做char型转换运算,并将结果赋值给c System.out.print(\
if((i-startPosition+1)==0)
System.out.println(\ } } }
运行结果:
? 实验后的练习:
1.将一个double型数据直接赋值给float型变量,程序编译时提示怎样的错误?
2.在应用程序的main方法中增加语句:
float x=0.618;
程序能编译通过么?
3.在应用程序的main方法中增加语句:
byte y=128;
程序能编译通过么?
4.在应用程序的main方法中增加语句:
int z=(byte)128;
程序输出变量z的值是多少?
2.回文数。
? 实验要求:
编写一个Java应用程序。用户从键盘输入一个1—9999之间的数,程序将判断这个数是几位数,并判断这个数是否是回文数。回文数是指将该数含有的数字逆序排列后得到的数和原数相同,例如12121、3223都是回文数。 ? 程序:
Number.java
import javax.swing.JOptionPane; public class Number {
public static void main(String args[]) {
int number=0,d5,d4,d3,d2,d1;
String str=JOptionPane.showInputDialog(\输入一个1至99999之间的数\ number=Integer.parseInt(str);
if((number>=1)&&(number<=99999)) //判断number在1至99999之间的条件 {
d5=number/10000; //计算number的最高位(万位)d5 d4=number% 10000/1000; //计算number的千位d4 d3= number00/100 ; //计算number的百位d3 d2=number0/10; d1=number;
if(d5!=0) //判断number是5位数的条件 {
System.out.println(number+\是5位数\
if(d5==d1&&d2==d4) //判断number是回文数的条件 {
System.out.println(number+\是回文数\ } else {
System.out.println(number+\不是回文数\ } }
else if(d4!=0) //判断number是4位数的条件 {
System.out.println(number+\是4位数\
if(d4==d1&&d3==d2) //判断number是回文数的条件码 {
System.out.println(number+\是回文数\ } else {
System.out.println(number+\不是回文数\ } }
else if(d3!=0) //判断number是3位数的条件 {
System.out.println(number+\是3位数\ if(d3==d1) //判断number是回文数的条件 {
System.out.println(number+\是回文数\ } else {
System.out.println(number+\不是回文数\ } }
else if(d2!=0) {
System.out.println(number+\是2位数\ if(d1==d2) {
System.out.println(number+\是回文数\ } else {
System.out.println(number+\不是回文数\ } }
else if(d1!=0)
{
System.out.println(number+\是1位数\ System.out.println(number+\是回文数\ } } else {
System.out.printf(\不在1至99999之间\ } }
}运行结果:
? 实验后的练习:
1.程序运行时,用户从键盘输入2332,程序提示怎样的信息?
2.程序运行时,用户从键盘输入654321,程序提示怎样的信息?
3.程序运行时,用户从键盘输入33321,程序提示怎样的信息?
3.猜数字游戏。
? 实验要求:
编写一个Java应用程序,实现下列功能:
1) 程序随机分配给客户一个1—100之间的整数 2) 用户在输入对话框中输入自己的猜测
3) 程序返回提示信息,提示信息分别是:“猜大了”、“猜小了”和“猜对了”。 4) 用户可根据提示信息再次输入猜测,直到提示信息是“猜对了”。 ? 程序:
GuessNumber.java
import javax.swing.JOptionPane; public class GuessNumber {
public static void main (String args[ ]) {
System.out.println(\给你一个1至100之间的整数,请猜测这个数\ int realNumber=(int)(Math.random()*100)+1; int yourGuess=0;
String str=JOptionPane.showInputDialog(\输入您的猜测:\ yourGuess=Integer.parseInt(str);
while(yourGuess!=srealNumber) //循环条件 {
if(yourGuess>realNumber) //条件代码 {
str=JOptionPane.showInputDialog(\猜大了,再输入你的猜测:\ yourGuess=Integer.parseInt(str); }
else if(yourGuess str=JOptionPane.showInputDialog(\猜小了,再输入你的猜测:\ yourGuess=Integer.parseInt(str); } } System.out.println(\猜对了!\ } } ? 实验后的练习: 1. 用“yourGuess>realNumber”替换【代码1】,可以么? 2. 语句:“System.out.println(“猜对了!”);”为何要放在while循环语句之后?放在while语句的循环体中合理吗? 【结果】 将本次上机实验结果按照实验要求内容依次进行,填写实验目标、过程、结果。 【注意事项】 ①实验报告要求每人提交一份,使用专门的报告纸,内容写全,包括实验名称、班级、姓名、同组人,试验日期、交报告日期等。 ②报告不需要填写源代码,只要将完成情况和所有练习题结果写上就可以。 【思考题】