A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 林其荣 中级黑马   /  2013-1-11 17:05  /  1092 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 林其荣 于 2013-1-13 16:58 编辑
  1. Scanner scan = new Scanner(System.in);
  2.                 System.out.print("请输入一个整数:");
  3.                 int num1 = scan.nextInt();
  4.                 System.out.print("请输入去运算符):");
  5.                 String str = scan.next();
  6.                 System.out.print("请输入一个整数:");
  7.                 int num2 = scan.nextInt();
  8.                 int result=0 ;
  9.                 if (str == "+") {
  10.                         result = num1 + num2;
  11.                 } else if (str == "-") {
  12.                         result = num1 - num2;
  13.                 } else if (str == "x") {
  14.                         result = num1 * num2;
  15.                 } else if (str == "/") {
  16.                         if (num2 != 0) {
  17.                                 result = num1 / num2;
  18.                         } else {
  19.                                 System.out.println("您输入有误!");
  20.                         }
  21.                 }
  22.                 System.out.println("结果是" + result);
复制代码
//请问一下这我怎么输入值计算的结果不对呢 怎么结果都等于0,
//我不是都判断了如果输入的符号对应哪个符号就计算出他的值吗怎么会是0

2 个回复

倒序浏览
请注意 在比较两个字符串是否相同时要用equals而不能用 == ,因为String中覆写了equals方法会判断两个字符串的内容是否相等。而单纯的 == 是判断两个字符串在内存中的地址是否相等。所以你需要把str == 改为 str.equals()才正确。

评分

参与人数 1技术分 +1 收起 理由
舒远 + 1

查看全部评分

回复 使用道具 举报
请把所有的== 换成equals    == 实际上是比较的两个字符串的物理内存地址而equals 比较两个对象的值(如果默认继承自 OBJECT ,则 equals 比较两个对象地址)

评分

参与人数 1技术分 +1 收起 理由
舒远 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马