C# break 和 return的区别

下面示例是break的用法:

复制代码
 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Drawing;
 6 using System.Windows.Forms;
 7 
 8 namespace ReturnDemo
 9 {
10     class Kodify_Example
11     {
12         static void Main()
13         {
14             for (int i = 1; i <= 7; i++)
15             {
16 
17                 for (int j = 1; j <= 7; j++)
18                 {
19                     int product = i * j;
20 
21                     if (product >= 20)
22                     {
23                         break;
24                     }
25                     Console.Write("{0}\t", product);
26                 }
27                 Console.WriteLine("\n");
28                 Console.Write("I am inner");
29                 Console.WriteLine("\n");
30             }
31             Console.WriteLine("\nFinished with calculations.");
32         }
33     }
34 }
复制代码

 

 由上面示例可见,每次j循环达到break语句条件时,break只是跳出了最内部的循环,外部循环继续运行,i=1直到i=7全部循环完毕。

下面是return的用法:

复制代码
 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Drawing;
 6 using System.Windows.Forms;
 7 
 8 namespace ReturnDemo
 9 {
10     class Kodify_Example
11     {
12         static void Main()
13         {
14             for (int i = 1; i <= 7; i++)
15             {
16 
17                 for (int j = 1; j <= 7; j++)
18                 {
19                     int product = i * j;
20 
21                     if (product >= 20)
22                     {
23                         return;
24                     }
25                     Console.Write("{0}\t", product);
26                 }
27                 Console.WriteLine("\n");
28                 Console.Write("I am inner");
29                 Console.WriteLine("\n");
30             }
31             Console.WriteLine("\nFinished with calculations.");
32         }
33     }
34 }
复制代码

 

 

由上面示例可见,第一次达到触发returnt条件语句时,return就跳转到整个void Main()函数的外层,就连Console.WriteLine("\nFinished with calculations.");这条语句都没有显示出来。

综合上述:

break仅导致从循环退出,所以任何循环之后的语句都会执行。另一方面,return会导致从当前函数体中退出,所以函数体内的语句不会再执行。

所以,在触发语句之后你想要退出当前函数体,就用return;如果你想要继续在函数体中执行,使用break.

break causes exit from the loop only, so any statements after loop will be executed. On the other hand, return causes exit from the current function, so no further statements inside this function will be executed.

So - if you want to exit current function after finding the first element, use return. If you want to continue execution in this function, use break.

posted @   chenlight  阅读(1000)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示