一、前言
本文是博主大二下初学java所完成的基础训练,目的是通过训练,加深对控制语句、数组、类的封装、类的组合、实例成员和类成员、和子类有关的匿名类、lambda表达式、异常及其处理、GUI设计等内容的理解掌握,初学java还有很多不足,大家在阅读过程中发现有可以改进的地方欢迎私信或者评论区与我讨论。
今天先从控制语句和数组入手。
二、java基础
(一)猜数字游戏(主要是考察控制语句的应用~)
1)实验目的
学会使用if...else和循环语句解决问题。
2)实验要求
编写一个java应用程序,实现以下功能:
Ⅰ.程序随机产生一个1~100间的整数;
Ⅱ.用户在输入对话框中输入自己所猜数字;
Ⅲ.程序根据用户猜测的数,给出提示信息,分别是:“猜大了”、“猜小了”和“猜对了”;
Ⅳ.如果用户没猜对,可根据提示信息再次输入数,直到猜对为止。
3)解题步骤(记录的是程序编写思路)
1.导入所需的包
Ⅰ.导入javax.swing.JOptionPane用于弹出对话框获取用户输入。
2.定义主类和主方法
Ⅰ.定义一个名为 GuessNumber 的公共类;
Ⅱ.在类中定义 main 方法,这是Java程序的入口点。
3.打印提示
Ⅰ.用 System.out.println 打印一条消息,告诉用户游戏规则。
4.生成随机数
Ⅰ.用 Math.random() 生成一个0到1之间的随机浮点数,然后乘以100并将结果转换为整数加上1,得到1到100之间的随机整数。
5.获取并解析用户输入内容
Ⅰ.使用 JOptionPane.showInputDialog 弹出一个对话框,让用户输入猜测的数字;
Ⅱ.用 Integer.parseInt 将用户输入的字符串转换为整数。
6.比较大小
Ⅰ.使用 while 循环来不断提示用户重新输入直到猜对为止;
Ⅱ.在循环体内,使用 if 语句判断用户输入的数字与随机数的大小关系。
7.输出结果
Ⅰ.用户猜对之后,用System.out.println打印一条消息告知。
4)解题关键点
1.生成随机数:使用Math.random()和数学运算生成1~100之间的随机整数;
2.用户输入:使用JOptionPane.showInputDialog获取用户输入,并使用Integer.parseInt将输入转换为整数;
3.循环条件:使用while循环来持续提示用户输入,直到猜对为止;
4.条件判断:使用if语句来判断用户输入的数字与随机数字的大小关系,并给出相应提示;
5.退出循环:猜对就自动退出循环了~
5)源代码
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!=realNumber) //循环条件
{
if(yourGuess>realNumber) //条件代码
{
str=JOptionPane.showInputDialog("猜大了,再输入你的猜测:");
yourGuess=Integer.parseInt(str);
}
else if(yourGuess<realNumber) //条件代码
{
str=JOptionPane.showInputDialog("猜小了,再输入你的猜测:");
yourGuess=Integer.parseInt(str);
}
}
System.out.println("猜对了!");
}
}
6)程序运行情况
(二)杨辉三角(主要是考察数组的应用)
1)实验目的
1.掌握Java中的数组属于引用型的一种复合数据类型;
2.掌握Java中一维数组、二维数组的定义和使用。
2)实验要求
编写一个Java应用程序,利用二维数组计算并输出杨辉三角的前6行。
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
3)解题步骤
1.定义主类和主方法
Ⅰ.定义一个名为 Yanghui 的公共类;
Ⅱ.在类中定义 main 方法,这是Java程序的入口点。
2.初始化二维数组
Ⅰ.创建一个动态二维数组 a,其大小为6行,每行的长度依次递增。
3.填充数组
Ⅰ.使用两个嵌套的 for 循环来填充数组;
Ⅱ.对于数组中的每个元素,根据杨辉三角的规则进行计算。
4.输出结果
Ⅰ.使用两个嵌套的 for 循环来输出数组中的元素,每行元素之间用制表符分隔,每行结束后换行。
4)解题关键点
1.懂得创建动态二维数组:使用动态数组,每行的长度随行数递增。
2.懂得杨辉三角的计算规则:第一个元素和最后一个元素始终为1,中间的元素是上一行相同位置的元素和上一行前一个位置的元素之和。
3.注意输出格式:用 System.out.print 和 System.out.println 控制输出格式,确保每行元素之间用制表符分隔,每行结束后换行。
5)源代码
public class Yanghui
{
public static void main(String[] args)
{
int[][] a=new int[6][];
for(int i=0;i<a.length;i++)
{
a[i]=new int[i+1];
}
for(int i=0;i<a.length;i++)
{
for(int j=0;j<a[i].length;j++)
{
if(j==0 || i==j) {
a[i][j]=1;
}
else
{
a[i][j]=a[i-1][j]+a[i-1][j-1];
}
}
}
System.out.println("获得杨辉三角前六行如下:");
for(int i=0;i<a.length;i++)
{
for(int j=0;j<a[i].length;j++)
{
System.out.print(a[i][j]+"\t");
}
System.out.println();
}
}
}
6)程序运行情况
以上就是博主所做的控制语句和数组两个基础实训,后续还会更新其他类型,希望能对广大求学者有所帮助!