黑马程序员技术交流社区

标题: 新手求解,运行错误 [打印本页]

作者: 乔兵    时间: 2013-9-2 20:08
标题: 新手求解,运行错误
本帖最后由 乔兵 于 2013-9-2 20:28 编辑

  1. import java.util.*;
  2. public class Excise019{
  3. public static void main(String[] args){
  4. Scanner in=new Scanner(System.in);
  5. System.out.println("请依次输入数字");
  6. int a=in.nextInt();
  7. int b=in.nextInt();
  8. int c=in.nextInt();
  9. if(a==b==c){System.out.println("这三个数相等");}else{if(a+b+c>1000){System.out.println("这三个数之和大于1000");}else{
  10. System.out.println("三个数之和不大于1000");}}
  11. }
  12. }
复制代码

作者: 李锡碧    时间: 2013-9-2 20:13
第十行有错误唉。10.if(a==b==c)改为if(a==b&&b==c){:soso_e100:}
作者: EYE_SEE_YOU    时间: 2013-9-2 20:21
为什么三个数相等的时候,就不去判断他们相加的和是不是大于1000了,还有等于1000的情况呢
作者: 高波    时间: 2013-9-2 20:24
你的判断条件有问题“a == b == c”, “==”是比较运算符,返回值是true或false,然后又与Int变量c比较,boolean与int比肯定出错,而且这在编译期就能检测出来的。改一下判断条件就行。
  1. import java.util.*;

  2. public class Excise019{
  3.         public static void main(String[] args) {
  4.                 Scanner in = new Scanner(System.in);
  5.                 System.out.println("请依次输入数字");
  6.                 int a = in.nextInt();
  7.                 int b = in.nextInt();
  8.                 int c = in.nextInt();
  9.                 if (a == b && a == c) {
  10.                         System.out.println("这三个数相等");
  11.                 } else {
  12.                         if (a + b + c > 1000) {
  13.                                 System.out.println("这三个数之和大于1000");
  14.                         } else {
  15.                                 System.out.println("三个数之和不大于1000");
  16.                         }
  17.                 }
  18.         }
  19. }
复制代码

作者: lou413    时间: 2013-9-2 20:24
if(a==b==c)在这里判断条件出错,在Java里a==b比较出来的值是boolean,而boolean值是不能和整数值用==进行比较的,再==后面也只能是boolean。你可以改成a==b&&b==c
作者: 毋须繁华    时间: 2013-9-2 20:26
  1. import java.util.*;
  2. public class Excise019{
  3.          public static void main(String[] args){
  4.                 Scanner in=new Scanner(System.in);
  5.                 System.out.println("请依次输入数字");
  6.                 int a=in.nextInt();
  7.                 int b=in.nextInt();
  8.                 int c=in.nextInt();
  9.                 if(a==b&&b==c){
  10.                         System.out.println("这三个数相等");
  11.                 }else{ if(a+b+c>1000){
  12.                         System.out.println("这三个数之和大于1000");
  13.                 }else{
  14.                         System.out.println("三个数之和不大于1000");}
  15.                 }
  16.         }
  17. }
复制代码
这样会清晰一点,java中没有a==b==c这种写法,一般写为a==b&&b==c  

作者: 李锡碧    时间: 2013-9-2 20:32
李锡碧 发表于 2013-9-2 20:13
第十行有错误唉。10.if(a==b==c)改为if(a==b&&b==c)

嗯 知道你是大意 多写写
作者: 裴昊    时间: 2013-9-2 21:52
java语法中不允许出现连等的 ,最好加一个 短路与




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2