20165334 实验一 Java开发环境的熟悉
实验内容
1、使用JDK编译、运行简单的java程序
2、使用IDEA编辑、编译、运行、调试java程序
实验步骤
1、使用JDK编译、运行简单的java程序
步骤
- 使用
mkdir
建立学号目录 - 使用
vim Hello
编写代码 - 使用
javac -d . Hello.java
编译代码 - 使用
java ltl.Hello
运行代码
截图如下
2、使用IDEA编辑、编译、运行、调试java程序
- 编写
HelloJDB
调试项目 - 设置断点
- 单击菜单「Run」->「Debug...」(或使用Alt+Shift+F9快捷键)开始调试Java程序
- 单步运行:
Step Into
和Step Over
- 设置条件断点
- 方法断点:有时候我们怀疑某个方法出错了,就可以设置方法断点。把光标移到方法中的任一行,使用菜单「Run」->「Toggle Method Breakpoint」
截图如下:
练习题: 产生一个随机数,让用户猜测,猜错了告诉用户是大了还是小了。 并进行测试(正常情况,异常情况,边界情况)
代码如下
第一次代码
//键盘输入,没有考虑边缘情况
import java.util.Random;
import java.util.Scanner;
public class rdtexttwo {
public static void main(String[] args) {
Random rd = new Random();
int a = rd.nextInt(100);
System.out.println("请输入100以内的数猜:(注意你一共有三次机会)");
Scanner input = new Scanner(System.in);
for (int i = 0; i < 3; i++) {
int b = input.nextInt();
if (b == a) {
System.out.println("恭喜你猜对了,兄弟你可以去买彩票了!");
break;
}
else if (b < a) {
System.out.println("哎呀,你猜的有点小了,可以猜大点");
}
else
System.out.println("你猜的数有点大");
}
}
}
//命令行输入
import java.util.Random;
public class rdtextone {
public static void main(String args[]) {
Random rd=new Random();
int a=rd.nextInt(100);
int b;
b=Integer.parseInt(args[0]);
System.out.println("请输入100以内要猜的数:");
if(b==a) {
System.out.println("恭喜你猜对了,你可以去买彩票了");
}
else if (b<a) {
System.out.println("哎呀,你猜的数有点小");
}
else {
System.out.println("你猜的数有点大");
}
}
}
运行截图
第二次修改考虑边缘情况
由于学了第七章的try -catch
语句,便设计了防止用户输入错误的功能。
代码如下
import java.util.Random;
import java.util.Scanner;
public class rdtext {
public static void main(String[] args) {
Random rd = new Random();
int a = rd.nextInt(100);
System.out.println("请输入100以内的数猜:(注意你一共有三次机会)");
Scanner input = new Scanner(System.in);
try {
for (int i = 0; i < 3; i++) {
int b = input.nextInt();
if (b == a) {
System.out.println("恭喜你猜对了,兄弟你可以去买彩票了!");
break;
} else if (b < a) {
System.out.println("哎呀,你猜的有点小了,可以猜大点");
} else
System.out.println("你猜的数有点大");
}
} catch (Exception e) {
System.out.println("输入有误,请输入100以内的数字");
}
}
}
运行截图
实验过程中遇到的问题
在设计猜数程序是第一次没有考虑边缘情况,第二次设计虽然解决了防止用户输入非数字的功能,但还没解决用户输入大于100的情况,我尝试用while(input.nextInt() <100)
,虽然解决了这个问题但引入另一个问题,当用户输入正常数字时没有运行结果,我会慢慢解决。
实验总结
边缘测试可以发现很多问题,不断测试才能设计一个完美的程序
步骤 | 耗时 | 百分比 |
---|---|---|
需求分析 | 10min | 10% |
设计 | 20min | 20% |
代码实现 | 50min | 50% |
测试 | 10min | 10% |
分析总结 | 10min | 10% |