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
.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)