一、实验目的
熟悉Java程序结构,掌握基本数据类型的使用方法,熟练运用分支、循环等语句控制程序流程,掌握方法、重载方法的定义和使用,掌握数组的使用方法。掌握在JDK环境中编译和运行Java程序的操作。
二、实验内容
- 本小题考察如何把内容输出到控制台,循环语句,break,continue:写一个程序,打印出1到50间的整数,每输出5个换一行(注:System.out.print()不换行,System.out.println()换行);修改此程序,在值为47时用一个break退出程序;修改此程序把break换成continue试试。
package cn.edu.dgut.exp1.Exam01;
public class Exam01 {
public static void main(String[] args) {
int i;
for (i=1;i<=50;i++)
{
//if (i==47)
//break;
//continue;
System.out.print(i+" ");
if (i%5==0)
System.out.println();
}
}
}
- 本小题考察switch中连续匹配处理,和缺省匹配处理:熟悉switch条件语句的语法格式,了解switch条件语句的特点
1)编写一个类Exam02
2)定义一个变量answer用于存储答案选项
3)用switch条件语句判断如果变量answer为B则正确,其它则错误
4)如果变量answer不等于ABCD四个选择则打印“不存在此选项”
package cn.edu.dgut.exp1.Exam02;
import java.util.Scanner;
public class Exam02 {
public static void main(String[] args) {
System.out.println("请输入答案:");
Scanner scanner=new Scanner(System.in);
char answer=scanner.next().charAt(0);
switch(answer)
{
case 'B':System.out.println("正确");break;
case 'A':
case 'C':
case 'D':System.out.println("错误");break;
default:System.out.println("不存在此选项");
}
}
}
- 本小题考察重载的实现:了解重载的定义,掌握方法重载的用法
1)编写一个类Exam03
2)在Example1中定义两个重载方法,一个用来计算矩形的面积(参数为长和宽,整形),一个用来计算圆形的面积(参数为半径r,实型,面积计算3.14rr),在main方法里面分别调用,输出面积计算的结果。
package cn.edu.dgut.exp1.Exam03;
import java.util.Scanner;
public class Exam03 {
public static int area(int a,int b)
{
return a*b;
}
public static double area(double r)
{
return 3.14*r*r;
}
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
System.out.print("请分别输入矩形的长和宽:");
int a=scanner.nextInt();
int b=scanner.nextInt();
int area1=area(a,b);
System.out.println("矩形面积为"+area1);
System.out.print("请输入圆形的半径:");
double r= scanner.nextDouble();
double area2=area(r);
System.out.println("圆形面积为"+area2);
}
}
- 本小题考察数组的定义,初始化,输入,输出,遍历,排序等:掌握一维数组中元素的排序
请编写程序,使用冒泡排序算法实现对数组 {25,24,12,76,101,96,28} 的排序。
1) 编写一个类Exam04
2) 定义排序方法,在方法中,用for循环嵌套实现排序。
3) 为了方便观察排序结果,将案例2-21中的printArr()方法复制到类中,输出排序前和排序后的数组元素。
package cn.edu.dgut.exp1.Exam04;
public class Exam04 {
public static void main(String[] args) {
int[] arr = {23,87,45,36,56,17};
System.out.println("排序前");
printArray(arr);
bubbleSort(arr);
System.out.println("排序后");
printArray(arr);
}
public static void bubbleSort(int[] arr)
{
int i,j,temp;
for (i=0;i< arr.length-1;i++)
for (j=0;j< arr.length-1-i;j++)
if (arr[j]>arr[j+1]) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
public static void printArray(int[] arr)
{
for(int i=0;i< arr.length;i++)
{
System.out.print(arr[i]);
System.out.print(',');
}
System.out.println();
}
}
- 本小题考察二维数组定义,初始化,遍历,应用: 使用一个二维数组存放如下图形的字符,并打印出来。
package cn.edu.dgut.exp1.Exam05;
public class Exam05 {
public static void main(String[] args) {
int i,j;
char[][] a=new char[4][7];
for(i=0;i<4;i++) {
for (j = 0; j <= i*2;j++) {
a[i][j]='*';
System.out.print(a[i][j]);
}
System.out.println();
}
}
}
三、总结
- break语句是跳出当前循环;continue语句是跳出本次循环(只跳过一次)
- 使用switch语句时要搭配break语句使用,否则会一直执行下去而达不到选择的作用
- 重载方法是函数同名,实现功能类似(本实验中都是计算面积),而参数列表不同
- 数组的定义,初始化要通过引用类来实现(与C语言不同);冒泡排序法是通过循环的嵌套,两个数间比较大小互换实现
- 打印图形要找到图形的规律,用循环的嵌套实现