| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 792 人关注过本帖
标题:C# 关于返回值的问题
只看楼主 加入收藏
yinghuashuzh
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2013-3-12
结帖率:0
收藏
已结贴  问题点数:20 回复次数:8 
C# 关于返回值的问题
using System;
class CalcPay
{    public static void Main(string[]args)
    {    int coat,trousers,money;
         Console.WriteLine("Enter coat number:");
         coat = Convert.ToInt32(Console.ReadLine());
         Console.WriteLine("Enter trousers number:");
         trousers = Convert.ToInt32(Console.ReadLine());
         money = getPay(coat,tousers);
         Console.WriteLine("total money = {0}",money);
    }
    public static int getPay(int c, int t)
     {
        int r;
        if(t>c)
            if(c>50)
               r=c*80+(t-c)*45;
            else
                r=c*90+(t-c)*45;
        else
            if(t>50)
                r=t*80+(c-t)*60;
            else
                r=t*80+(c-t)*60;
   }

}
上面的代码。系统显示第二个getPay那里出错。不是所有的程序都有返回值。该怎么改。
搜索更多相关主题的帖子: number public void static Enter 
2013-03-12 14:59
yhlvht
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:36
帖 子:707
专家分:4405
注 册:2011-9-30
收藏
得分:5 
这个看起来好像不是返回值的问题,有点像使用范围的问题。
1 你可以把public static int getPay(int c, int t)这个方法的static去掉,变为类方法
2 在类class CalcPay前面加上public , 如 public class CalcPay
因为暂时没有开发环境,只是估计是这样的原因,你试试看吧。不行的话,把异常内容贴出来看看呗


2013-03-12 15:10
yhlvht
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:36
帖 子:707
专家分:4405
注 册:2011-9-30
收藏
得分:0 
另外若方法加有static,那种调用的时候应该使用类名.方法名。
也就是money = getPay(coat,tousers);应写成 money = CalcPay.getPay(coat,tousers);
不加类名也不会报错,但应该是有警告的

2013-03-12 15:14
a6068132
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:47
专家分:131
注 册:2011-5-10
收藏
得分:5 
方法是返回值类型,又不给return,不错才怪
2013-03-12 17:17
yhlvht
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:36
帖 子:707
专家分:4405
注 册:2011-9-30
收藏
得分:0 
楼上+1,我都没注意到
public static int getPay(int c, int t)
        {
            int r;
            if (t > c)
                if (c > 50)
                    r = c * 80 + (t - c) * 45;
                else
                    r = c * 90 + (t - c) * 45;
            else
                if (t > 50)
                    r = t * 80 + (c - t) * 60;
                else
                    r = t * 80 + (c - t) * 60;
            return r;
        }
2013-03-12 17:38
winners
Rank: 6Rank: 6
来 自:济南
等 级:侠之大者
威 望:1
帖 子:105
专家分:416
注 册:2009-3-20
收藏
得分:5 
以下是引用a6068132在2013-3-12 17:17:32的发言:

方法是返回值类型,又不给return,不错才怪

必须将返回值return给方法才可以的
2013-03-13 08:28
bigfeifei
Rank: 2
等 级:论坛游民
帖 子:2
专家分:15
注 册:2013-3-15
收藏
得分:5 
int getPay方法没有返回值啊,return r;
2013-03-15 22:28
xushengsheng
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2013-3-22
收藏
得分:0 
trousers = Convert.ToInt32(Console.ReadLine());
          money = getPay(coat,tousers);
你的参数貌似写错了~
2013-03-22 15:02
xushengsheng
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2013-3-22
收藏
得分:0 
static void Main(string[] args)
        {    int coat,trousers,money;
          Console.WriteLine("Enter coat number:");
          coat = Convert.ToInt32(Console.ReadLine());
          Console.WriteLine("Enter trousers number:");
          trousers = Convert.ToInt32(Console.ReadLine());
          money = getPay(coat,trousers);
          Console.WriteLine("total money = {0}",money);
     }
     public static int getPay(int c, int t)
      {
         int r;
         if(t>c)
             if(c>50)
                r=c*80+(t-c)*45;
             else
                 r=c*90+(t-c)*45;
         else
            if(t>50)
                 r=t*80+(c-t)*60;
             else
                 r=t*80+(c-t)*60;
         return r;
        }
2013-03-22 15:05
快速回复:C# 关于返回值的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023281 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved