黑马程序员技术交流社区

标题: return跳出do-while循环? [打印本页]

作者: 李后量    时间: 2012-5-15 19:10
标题: return跳出do-while循环?
本帖最后由 李后量 于 2012-5-15 19:17 编辑

先看代码
public static int ReadInt()
        {
            int number = 0;
            do
            {
                try
                {
                    number = Convert.ToInt32(Console.ReadLine());
                    return number;
                }
                catch
                {
                    Console.WriteLine("输入错误,请重新输入");
                }
            }
            while (true);
        }
    }

想问的是程序运行到return的时候为什么能直接跳出do-while?难道是在方法中只要遇到return就结束该方法的运行吗?如果是的话,那是不是用break也能跳出啊?

作者: 王卫    时间: 2012-5-15 19:37
return 是返回值 的意思,既然 此方法 已经 有输出了 就无需 再 运行下去了,所以 就  return 出一个值了----
break 是 跳出的意思  , 用break也可以 跳出,不过 就 没有 返回值了 -----switch case 中 就 用的 break 跳出----

当然 还有 contiune ,continue是 跳出 循环过程 直接检查 循环条件  循环条件 满足 就 继续执行,不满足 就结束 -----
作者: 李后量    时间: 2012-5-15 19:54
王卫 发表于 2012-5-15 19:37
return 是返回值 的意思,既然 此方法 已经 有输出了 就无需 再 运行下去了,所以 就  return 出一个值了-- ...

“既然此方法已经有输出了就无需再运行下去了”这句话到位,醍醐灌顶啦……
作者: 魏庆君    时间: 2012-5-24 03:15
return 是直接跳出函数体,并将返回值返回到调用函数调用的地方
被调用函数就是在需要的时候才在内存中开辟空间,进行加载,目的就是为了得到return的返回值
所以遇到return之后,就直接跳出函数体,而不是do-while循环语句
如果在do-while中继续有该函数的调用语句,则继续执行,达到函数自身的循环调用,不过,一般情况下都是在满足一定的条件下才这么做的,否则会造成死循环,程序无法继续执行下去




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