命令行参数
09.第九周
提交测试结果截图,课下把代码上传到码云。
求命令行传入整数参数的和。
public class TestArgs {
public static void main(String [] args) {
int sum = 0;
// 参考Integer类中的方法把字符串转为整数
// 补充代码求命令行参数的args中整数数据的和
...
// 打印
System.out.println(sum);
}
}
递归
09.第九周
public class TestArgs {
public static void main(String [] args) {
int sum = 0;
// 参考Integer类中的方法把字符串转为整数
// 补充代码以递归的方式求命令行参数的args中整数数据的和
...
// 打印
System.out.println(sum);
}
//递归函数
public static void clSum(int [] arr) {
...
}
}
我看了一下同学的代码,觉得不对好像不对。。我确实觉得没有按老师的要求,不知道是不是我理解错题意了,请老师看一下代码:
import java.util.ArrayList;
import java.util.List;
public class TestArgs2 {
public static void main(String[] args) {
//创建一个数组,把输入的参数加入数组中。
int[] b = new int[args.length];
for (int i = 0; i < args.length; i++) {
int a = Integer.parseInt(args[i]);
b[i] = a;
}
c.clSum(b);//调用递归函数
}
//递归函数
static class c {
static List list = new ArrayList();
static int result = 0; //声明一个初始变量result
public static void clSum(int[] arr) {
if (arr.length == 1) {
list.add(arr[0]);
result = result + arr[0];
System.out.println(result);
/*
如果数组arr的长度为1,那么就是result加上这个数
*/
} else {
if (arr.length != 0) {
int[] ar = new int[arr.length - 1];
for (int d = 0; d < arr.length - 1; d++) {
ar[d] = arr[d];
}
int last = arr[arr.length - 1];
list.add(last);
result = result + last;
arr = ar;
clSum(arr);
/*
如果数组arr长度不为1,那么每次都利用中间数组ar来弹出最后一个数,并使arr长度减少一位再每次都把弹出来的数加起来,直到arr长度为1的时候,调用相应的语句。
*/
}
}
}
}
简易计算器
09.第九周
提交测试码云链接和测试截图(测试不要和下面的示例相同),加上学号信息
实现一个简易计算器Calc,支持+ - * / 和%运算, 从命令行传入计算数据,比如:
java Calc 2 + 3 结果为 2 + 3 = 5
java Calc 8 - 3 结果为 8 - 3 = 5
java Calc 2 * 3 结果为2 * 3 = 6
java Calc 10 / 2 结果为10 / 2 = 5
java Calc 10 % 3 结果为10 % 3 = 1
mini dc
09.第九周
提交测试截图和码云练习项目链接,实现Linux下dc的功能,计算后缀表达式的值
补全代码为:
//如果是运算符,调用isOperator
if (isOperator(token)) {
op1 = stack.pop();
op2 = stack.pop();
switch (token) {
case "+":
result = evalSingleOp(ADD, op1, op2);
stack.push(result);
break;
case "-":
result = evalSingleOp(SUBTRACT, op1, op2);
stack.push(result);
break;
case "*":
result = evalSingleOp(MULTIPLY, op1, op2);
stack.push(result);
break;
case "/":
result = evalSingleOp(DIVIDE, op1, op2);
stack.push(result);
break;
}
} else
stack.push(Integer.parseInt(token));
}