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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

下面是代码,不知道哪里出错了,晕呀,找了好长时间了。我求的是1到20的和的函数。但是不知道怎么回事,找不到哪个地方出错了。
求求各位给我指点一下吧。新手勿笑我哈。。

class Function {
        public static void main (String[] args) {
                int number = 20;
                int xx = sum(number);
                int average = xx / number;
                System.out.println("1到" + number + "之间的数之和是" + xx + "它们的平均数是" + average);
               
        }
        public static int sum(int num) {
                int x = 1;
                int y = 0;
                while (x <= num) {
                        y = y + x;
                        x++;       
                return y;

        }       
}

19 个回复

倒序浏览
没看懂
回复 使用道具 举报
顶。。。。。
回复 使用道具 举报
把 return y;放在while循环外
public static int sum(int num) {
                int x = 1;
                int y = 0;
                while (x <= num) {
                        y = y + x;
                        x++;
                        }
                return y;

        }
回复 使用道具 举报
最后掉了一个大括号,还有 return 应该在while循环外面
回复 使用道具 举报
梧樱楠 来自手机 中级黑马 2015-4-25 23:03:50
地板
结尾}少一个
回复 使用道具 举报
class Function {
        public static void main (String[] args) {
                int number = 20;
                int xx = sum(number);
                int average = xx / number;
                System.out.println("1到" + number + "之间的数之和是" + xx + "它们的平均数是" + average);
               
        }
        public static int sum(int num) {
                int x = 1;
                int y = 0;
                while (x <= num) {
                        y = y + x;
                        x++;        
               // return y;

        }
                return y;
                }
}
回复 使用道具 举报
class Function {
         public static void main (String[] args) {
                 int number = 20;
                 int xx = sum(number);
                 int average = xx / number;
                 System.out.println("1到" + number + "之间的数之和是" + xx + "它们的平均数是" + average);
                 
        }
         public static int sum(int num) {
                 int x = 1;
                 int y = 0;
                 while (x <= num) {
                         y = y + x;
                         x++;        

                                }
                                return y;

        }        
}
回复 使用道具 举报
你把return  y ;放到while 循环的外部试试
回复 使用道具 举报
zzlin 中级黑马 2015-4-26 09:27:11
10#
return要放在while循环外
回复 使用道具 举报
yapo 中级黑马 2015-4-26 09:45:29
11#
朋友,你这程序有两个错误: A 你仔细看一下是不是缺少一个大括号类的大括号,所以你编译时系统会报错: 解析时已到达文件结尾,你需要补一个大括号。B:你把return返回值写在while循环语句的括号里面了,正确应该是写在sum函数的括号里,循环语句外。正确写法如下:
回复 使用道具 举报
yapo 中级黑马 2015-4-26 09:48:26
12#
正确写法:class Function {         public static void main (String[] args) {                 int number = 20;                 int xx = sum(number);                 int average = xx / number;                 System.out.println("1到" + number + "之间的数之和是" + xx + "它们的平均数是" + average);                          }         public static int sum(int num) {                 int x = 1;                 int y = 0;                 while (x <= num) {                         y = y + x;                         x++;                }                                 return y;//返回值类型应放在函数里与执行语句并列 } }//类对应的大括号
回复 使用道具 举报
cuidianlong 发表于 2015-4-25 23:03
最后掉了一个大括号,还有 return 应该在while循环外面

正解~!
回复 使用道具 举报
本帖最后由 qq853636281 于 2015-4-26 10:44 编辑
  1. 为什么你们都用while,用for不是很好吗,我下面的有啥问题没,学的不久
复制代码
  1. public static int getSum(int num) {    //
  2.         
  3.                 int sum=0;                                        //定义初始和等于0
  4.                 for(int x=1;x<=num;x++) {        //遍历1-num的数
  5.                         sum=sum+x;                                //和等于上一个的和加遍历到的数
  6.                         
  7.                 }
  8.                 return sum;                        
  9.         }
  10.         public static void main(String[] args) {
  11.         
  12.                 int sum = getSum(20);                //赋给num=20,遍历到20
复制代码


回复 使用道具 举报
都很厉害的样子
回复 使用道具 举报
不错,已经看过了,值得赞一个
回复 使用道具 举报
你这是源码吗,大括号的数量不对,少一个右大括号
回复 使用道具 举报
sisel 中级黑马 2015-4-26 11:35:16
18#
while反括号 的位置~~
回复 使用道具 举报

我已经搞定了。少了一个括号
回复 使用道具 举报

thanks to your  reply:lol
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马