实验一Java基本数据类型与控制语句
实验一 Java基本数据类型与控制语句
【目的】
①掌握char型数据和int型数据之间的相互转换,同时了解unicode字符表;
②掌握使用if…else if多分支语句;
③使用if…else分支和while循环语句解决问题。
【内容】
1.猜数字游戏。
实验要求:
编写一个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(【代码1】) //循环条件
{
if(【代码2】) //条件代码
{
str=JOptionPane.showInputDialog("猜大了,再输入你的猜测:");
yourGuess=Integer.parseInt(str);
}
else if(【代码3】) //条件代码
{
str=JOptionPane.showInputDialog("猜小了,再输入你的猜测:");
yourGuess=Integer.parseInt(str);
}
}
System.out.println("猜对了!");
}
}
添加代码后的程序:
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
{
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语句的循环体中合理吗?不合理,输出的结果是错误的。
3. 用Scanner进行输入改写程序。
import java.util.Scanner;
public class shiyan{
public static void main (String args[ ]){
System.out.println("给你一个1至100之间的整数,请猜测这个数");
Scanner in=new Scanner(System.in);
int realNumber=(int)(Math.random()*100)+1;
System.out.println("输入您的猜测:");
int yourGuess=in.nextInt();
while(yourGuess
{
if(yourGuess> realNumber) //条件代码
{
System.out.println("猜大了,再输入你的猜测:");
yourGuess=in.nextInt();
}
else if(yourGuess
{
System.out.println("猜小了,再输入你的猜测:");
yourGuess=in.nextInt();
}
else{
System.out.println("猜对了!");
}
}
}
}
2.输出希腊字母表。
实验要求:
编写一个Java应用程序,该程序在命令行窗口输出希腊字母表。
程序运行效果
程序模板:
GreekAlphabet.java
public class GreekAlphabet
{
public static void main (String args[ ])
{
int startPosition=0,endPosition=0;
char cStart='α',cEnd='ω';
int startPosition=(int) //cStart做int型转换据运算,并将结果赋值给startPosition
【代码2】 //cEnd做int型转换运算,并将结果赋值给endPosition
System.out.println("希腊字母\'α\'在unicode表中的顺序位置:"+(int)cStart);
System.out.println("希腊字母表:");
for(int i=startPosition;i
{
char c='\0';
【代码3】 //i做char型转换运算,并将结果赋值给c
System.out.print(" "+c);
if((i-startPosition+1)%10==0)
System.out.println("");
}
}
}
改写后的程序:
public class GreekAlphabet
{
public static void main (String args[ ])
{
int startPosition=0,endPosition=0;
char cStart='α',cEnd='ω';
startPosition=(int)cStart ; //cStart做int型转换据运算,并将结果赋值给startPosition
endPosition=(int)cEnd ; //cEnd做int型转换运算,并将结果赋值给endPosition System.out.println("希腊字母\'α\'在unicode表中的顺序位置:"+(int)cStart);
System.out.println("希腊字母表:");
for(int i=startPosition;i
{
char c='\0';
c=(char)i; //i做char型转换运算,并将结果赋值给c
System.out.print(" "+c);
if((i-startPosition+1)%10==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的值是多少?
【结果】
将本次上机实验结果按照实验要求内容依次进行,填写实验目标、过程、结果。
【注意事项】
实验报告要求每人提交一份,内容写全,包括实验名称、班级、姓名。