gpt4 book ai didi

Java:两个数字相加的边缘情况和 future 要求

转载 作者:行者123 更新时间:2023-12-01 13:31:13 27 4
gpt4 key购买 nike

得到一个面试问题,以找出添加两个数字的边缘情况和 future 要求。
两个数字相加

public static void main(String[] args) {
// TODO Auto-generated method stub


System.out.println("First number: ");
Scanner input = new Scanner(System.in);

int a = input.nextInt();

System.out.println("Second number: ");
int b = input.nextInt();

int sum = a+b;

System.out.println("Result: "+sum);
}

边缘情况 1
空检查。任何输入数字都可以为空。

边缘案例 2
输入数字较大。

最终计划将使用 BigInteger 而不是整数。

BigInteger first = new BigInteger(number1);
BigInteger second = new BigInteger(number2);

这里还有可以考虑的任何其他边缘情况或 future 需求吗?

最佳答案

测试用例可以分为两部分:

健全性检查(空或非数字字段)- 这不包含在您的边缘案例中!

因此您的边缘案例 1 - 不是边缘案例

您的Edge Case 2是一个有效的案例,但它没有指定什么是大数字。

现在,您正在使用原始类型来存储 Number1Number2 的值,并对原始类型进行算术运算。因此,我们只考虑“原始类型”的评估

根据定义:边缘情况是函数规范允许的输入,但处理起来可能很棘手。 - Josh Zimmerman

我认为,有两种情况需要考虑;

记住:Java 虚拟机在整数数据类型操作期间不会指示溢出。

Overflow Conditions / Information Loss in Arithmetic : (For int, from -2147483648 to 2147483647 (-231 to 231-1), inclusive)

1. Addition of two large negative integer numbers causing an overflow
2. Addition of two large positive integer number causing an overflow
3. Addition of two opposite signed numbers
4. Addition of X =0 and Y=0


Large input where x < MIN INT or > MAX INT on JAVA Platform

1. Handling LARGE (-/+) numbers as input - can be termed as INFINITE ? How will the system behave ?

关于Java:两个数字相加的边缘情况和 future 要求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21554232/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com