标签:不能 仓库 imp ·· oid 赋值 arrays comm upload
在码云上建立以学号命名的仓库,再克隆到本地,建立子目录bin和src,使用vim编写程序(见码云链接exp1.java),javac编译后使用java命令运行,输出自己的学号姓名。
首先从码云将仓库克隆到本地,选择File->New->Project from Version Control->Git,然后将仓库的链接复制到url栏并设置路径。
这样就完成了IDEA与码云的链接。
右击建立的目录,选择New->Java Class,就可以创建新的类。
调试代码时可以在行号左边单击设置断点,使用Alt + shift + 9
开始debug,接下来可以使用F7:step into 和F8:step over单步执行。
遇到循环是可以设置条件断点,右击断点,设置条件i==50后按F9运行到条件处
ctrl + k commit
ctrl + shift + k push
实现Fibonacci数列功能,并进行测试(正常情况,异常情况,边界情况)
我想创建一个Fibonacci类来实现
用数组迭代来避免递归效率过低的问题,代码见托管链接
测试了正常、边界(n=0)和异常(n<0)情况
操作后变成这样
import java.util.Arrays;
public class Fibonacci {
int length;
int[] fib;
Fibonacci(int n) {
this.length = n;
fib = new int[length];
System.out.println("Please Input a positive number");
if(calcNextFib(n)<0){
for (int i = 0; i < n; i++) {
fib[i] = calcNextFib(i);
}
} else {
System.out.println("Invalid Input");
}
}
private int calcNextFib(int n) {
if (n == 0 || n == 1) {
return 1;
} else if (n > 1) {
return fib[n - 1] + fib[n - 2];
} else {
return -1;
}
}
void printFib() {
System.out.println(Arrays.toString(fib));
}
}
原来是数组定义的时候长度不能为负数,所以在给数组赋值的时候检查并没有什么用。而我用这种方式来构造斐波那契数列,正好可以用数组长度来检测输入数据的合法性,所以我想到可以直接catch这个异常,修改代码如下
···
Fibonacci(int n) {
this.length = n;
try {
fib = new int[length];
} catch (NegativeArraySizeException e) {
System.out.println("Please Input a positive number");
}
for (int i = 0; i < n; i++) {
fib[i] = calcNextFib(i);
}
}
···
之后我又测试了长度为0时,是可以的,结果创建了一个空数组,测试结果如下
2018-2019-2 20175211 实验二《Java面向对象程序设计》实验报告
标签:不能 仓库 imp ·· oid 赋值 arrays comm upload
原文地址:https://www.cnblogs.com/20175211lyz/p/10727264.html