输入任意数字,计算其与13的差值始终显示-13,求技术解答
为什么计算数字与13的差值总是得到-13?
这种情况我之前帮同事排查过好几次,大概率是你的代码根本没用到输入的数字,而是用了固定的0(或者等效于0的默认值)去减13,所以结果永远是-13。下面列几个最常见的原因,你可以对照自己的代码排查:
输入变量未正确赋值:比如你定义了变量,但没把用户输入的内容存进去。举个Python的错误例子:
# 错误:直接把变量设为0,没获取输入 num = 0 result = num - 13 print(result) # 永远输出-13正确的做法应该是把用户输入的内容赋值给变量:
num = int(input("请输入数字:")) result = num - 13 print(result)输入未转换为数值类型:如果你的语言是弱类型(比如JavaScript),直接用字符串类型的输入去做减法,空字符串或者无效输入会被自动转为0。比如:
// 错误:没把输入转成数字 let num = prompt("请输入数字"); console.log(num - 13); // 如果输入为空,结果就是0-13=-13解决办法是先把输入转为数值:
let num = Number(prompt("请输入数字")); console.log(num - 13);函数参数传递错误:如果你用了函数封装逻辑,但调用时没传输入的数字,函数用了默认的0作为参数。比如:
// 错误:函数调用时传了默认的0 public static int subtract13(int num) { return num - 13; } public static void main(String[] args) { System.out.println(subtract13(0)); // 结果永远是-13 }正确的调用应该是把用户输入的数值传进去:
import java.util.Scanner; public static int subtract13(int num) { return num - 13; } public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int inputNum = scanner.nextInt(); System.out.println(subtract13(inputNum)); }
总的来说,核心问题就是参与计算的变量没有真正接收用户输入的数值,而是用了默认的0值。你可以重点检查输入获取、变量赋值、参数传递这几个环节,确认输入的数字确实被用到了计算里。
内容的提问来源于stack exchange,提问作者Octavian Niculescu
相关产品推荐
相关产品推荐

