标题:折腾代码:这里的 return 返回值,是一个?还是多个?
只看楼主
lxsxd
Rank: 5Rank: 5
等 级:贵宾
威 望:14
帖 子:153
专家分:357
注 册:2014-4-15
结帖率:96.15%
已结贴  问题点数:10 回复次数:3 
折腾代码:这里的 return 返回值,是一个?还是多个?
一、题目 通过方法的return语句返回值
    class MyClass
    {
        public int myMethod()
        {
            int i=8;
            if (i > 4)
                {
                    i = i * 2;
                    return i;
                }
                else
                {
                    i = i * 3;
                    return i;
                }
            }
        }
        static void Main()
        {
            MyClass mycls = new MyClass();
            Console.WriteLine(mycls.myMethod());

            Console.ReadLine();
        }
    }

这段代码是例题的代码,运行后是正确的。输出到屏幕的显示为:16

二、折腾代码
    折腾代码的思路是:在方法体内运用for语句,想产生若干个return返回值。然后在屏幕上显示。代码如下:
    class MyClass
    {
        public int myMethod()
        {
            int k;
            for (int i = 1; i <= 8; i++)
            {
                if (i > 4)
                {
                    k = i * 2;

                    return k;
                }

                else
                {
                    k = i * 3;

                    return k;
                }
            }
        }
        static void Main()
        {
            MyClass mycls = new MyClass();
            Console.WriteLine(mycls.myMethod());

            Console.ReadLine();
        }
    }

运行后,产生两个错误:1)检测到无法访问的代码。即,for中的i++之i;2)public int myMethod(): 并非所有的代码路径都返回值;

三、当前思考
虽然这次折腾代码失败了,但是我觉得很有意义。通过这样以自己的思路折腾代码,对代码的理解就会加深。此处,我的理解是:return返回的值只有一个,在for中i=1时,就产生了一个返回值,这时调用方法就结束了。

求教:1)我的理解是否正确??2)此处return返回值到底几个?3)如果要把for中的值全部返回,该如何做??
求助大侠们!!小虾先谢谢了!!
搜索更多相关主题的帖子: public return 
2014-06-15 17:47
编号1016
Rank: 3Rank: 3
等 级:论坛游侠
威 望:5
帖 子:46
专家分:188
注 册:2014-5-8
得分:10 
class Program
    {
        
        static void Main(string[] args)
        {
            m my = new m();
            my.MyClass();
            

            Console.WriteLine(my.MyClass());            
            Console.ReadLine();


        }
    }
    public class m
    {
        public int MyClass()
        {
            int i = 8;
            if (i > 4)
            {
                i = i * 2;
                return i;
            }
            else
            {
                i = i * 3;
                return i;
            }

        }
    }

结果是16对吧!?我一时也不知道你那是错在哪!但我用另一个累来存放这个MyClass这个方法然后在实例化这个类调用里面的方法

相互学习,让自己变得更强大!
2014-06-15 20:46
Maick
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:32
帖 子:251
专家分:1314
注 册:2012-9-21
得分:0 
class MyClass
    {
        public int myMethod()
        {
            int k;
            for (int i = 1; i <= 8; i++)
            {
                if (i > 4)
                {
                    k = i * 2;

                   Console.WriteLine(k);
                }

                else
                {
                    k = i * 3;

                    Console.WriteLine(k);
                }
            }
        }
        static void Main()
        {
            MyClass mycls = new MyClass();
            mycls.myMethod();

            Console.ReadLine();
        }
    }
2014-07-18 14:00
asdfv63
Rank: 3Rank: 3
等 级:论坛游侠
威 望:5
帖 子:38
专家分:142
注 册:2013-4-15
得分:0 
循环里嵌套if结构不要在if里返回。最好是在if里改变一个Boolean然后在if外边返回
2014-07-18 16:25



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-432960-1-1.html




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

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