一、实验目的
成都创新互联于2013年成立,先为新源等服务建站,新源等地企业,进行企业商务咨询服务。为新源企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。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 所示。
图 1 程序SimpleTypes.java的编译及运行结果贴图
(二)了解各种类型的取值范围和变量的使用范围
1、使用System.out.printf方法把所有基本数据类型的大值最小值表示出来。如int类型的取值范围System.out.printf("int \t数值范围:%d ~ %d\n",Integer.MAX_VALUE, Integer.MIN_VALUE);
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);
}
}
程序及运行结果贴图
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在方法块中声明,在方法块之外它是不存在的, 所以编译时会出错。
程序运行过程贴图
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、成功运行该程序。
思考:Scope.java 程序说明了什么问题?
定义在块中的变量作用域只在所在块中可见
(三)使用关系运算符和逻辑运算符
1、建立使用关系运算符RealtionOp.java和逻辑运算符LogicOp.java的程序文件,源代码如下:
//RelationOp.java
//Java中关系运算符的使用
public class RelationOp{
public static void main(String[] args){
int a=9;
int b=6;
int c=6;
boolean d=a>b; //ture
boolean e=a
boolean f=b==c; //ture
boolean g=b!=c; //false
f=(b==c)||(a
g=(b==c)&&(a
System.out.println("d="+d);
System.out.println("e="+e);
System.out.println("f="+f);
System.out.println("g="+g);
}
}
运行结果贴图
//LogicOp.java
//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、编译并运行该程序。
运行结果贴图
(四) 使用表达式语句与复合语句
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. 编译并运行上述两个源程序,结果如图
程序运行编译及运行过程贴图
4. 将变量 i 在块内定义会怎样?改变其他变量的位置看看会发生什么变化。
思考:指出程序的复合结构以及变量的使用范围。
程序的复合结构
(五) 使用选择语句
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)编译运行程序,其结果如图 所示。
程序运行编译及运行过程贴图
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)编译运行程序,其结果如图所示。
程序运行编译及运行过程贴图
(六) 使用循环语句
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. 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)编译源程序。
(4)在命令提示符窗口运行程序,然后分别按 1、2、3、r 结果如图 10 所示。
程序运行编译及运行过程贴图
思考:注释掉语句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);
}
}
程序运行编译及运行过程贴图
(七)综合程序设计
1模拟从一副扑克牌52张中选择一张。程序中牌的大小应显示为(Ace,1,2,3,4,5,6,7,8,9,10,Jack,Queen,King),牌的花色应该显示为(Diamonds(方块),Hearts(红心),Spades(黑桃),Clubs(梅花))。程序某一次运行时的输出如下
The Card you picked is Jack of Hearts.
程序源代码
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);
}
}
程序运行结果贴图
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
程序运行结果贴图
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧