VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 编程开发 > c#编程 >
  • 跳转语句:break、continue与return

跳转语句:break、continue与return
在程序执行过程中,默认流程是“顺序执行”——从上到下逐条执行语句。但实际开发中,常需主动改变执行流程(如提前退出循环、跳过无效数据、结束方法执行等)。跳转语句(Jump Statement)就是用于显式改变执行路径的工具,C#中常用vb.net教程C#教程python教程SQL教程access 2010教程的跳转语句包括break、continue和return。本节将通过实例详解三者的语法、作用及使用场景,帮助读者精准控制程序流程。

  1. break:跳出当前结构
    1.1 作用
    break用于立即终止并跳出“最近的包围结构”,包括循环(for/while/foreach)和switch语句。执行后,程序从该结构的下一条语句继续运行。
    1.2 循环中使用break
    场景:在循环中找到目标值或满足退出条件时,终止循环(避免无意义的后续迭代)。
    实例1:在for循环中使用break查找元素
    csharp
	int[] numbers = { 3, 7, 12, 5, 9 }; 
	int target = 12; 
	int index = -1; // 存储目标元素的索引,初始化为-1(未找到) 
	
	// 遍历数组查找目标值 
	for (int i = 0; i < numbers.Length; i++) 
	{ 
	if (numbers[i] == target) // 判断当前元素是否为目标值 
	{ 
	index = i; // 记录索引 
	break; // 找到目标,跳出整个for循环 
	} 
	Console.WriteLine($"已检查索引{i},未找到目标"); // 未找到时打印 
	} 
	
	if (index != -1) 
	Console.WriteLine($"目标值{target}的索引为:{index}"); // 输出:目标值12的索引为:2 
	else 
	Console.WriteLine("未找到目标值");

逐行讲解:
int[] numbers = { 3, 7, 12, 5, 9 };:定义整数数组,存储待查找数据。
int target = 12;:设置目标值(要查找的元素)。
int index = -1;:初始化索引变量,-1表示“未找到”(数组索引从0开始,不会出现-1)。
for (int i = 0; i < numbers.Length; i++):遍历数组,i为当前索引(0~4)。
if (numbers[i] == target):判断当前元素(numbers[i])是否等于目标值(12)。
o当i=2时,numbers[2]=12,条件成立:
index = i;:记录目标索引(2)。
break;:跳出for循环,后续迭代(i=3、4)不再执行。
循环外判断index是否为-1:找到则输出索引,否则提示未找到。
1.3 switch中使用break
场景:在switch语句中,break用于跳出当前case,避免“贯穿”(执行完当前case后继续执行下一个case)。
实例2:switch中使用break避免贯穿
csharp

	char grade = 'B'; 
	switch (grade) 
	{ 
	case 'A': 
	Console.WriteLine("优秀"); 
	break; // 跳出switch,避免执行后续case 
	case 'B': 
	Console.WriteLine("良好"); 
	break; // 执行完B的逻辑后跳出 
	case 'C': 
	Console.WriteLine("及格"); 
	break; 
	default: 
	Console.WriteLine("不及格"); 
	break; // default后可省略break,但建议保留,保持一致 
	} 
	// 输出:良好

关键说明:
若case 'B'后无break,执行完“良好”后会继续执行case 'C'的“及格”(即使grade不是'C'),导致逻辑错误。
C#不允许隐式贯穿(除空case合并),若case后无break且非空case,编译报错。
2. continue:跳过当前迭代
2.1 作用
continue用于跳过循环当前迭代的剩余代码,直接进入下一次迭代(不会跳出循环)。仅用于循环(for、while、foreach)。
2.2 实例:累加1~10中的奇数(跳过偶数)
csharp

	int sum = 0; 
	for (int i = 1; i <= 10; i++) 
	{ 
	if (i % 2 == 0) // 判断是否为偶数(能被2整除) 
	{ 
	continue; // 跳过当前迭代剩余代码,直接进入下一次i++ 
	} 
	sum += i; // 累加奇数(i为奇数时执行) 
	} 
	Console.WriteLine($"1~10的奇数和:{sum}"); // 输出:25(1+3+5+7+9=25)

逐行讲解:
int sum = 0;:初始化累加和为0。
for (int i = 1; i <= 10; i++):i从1循环到10(1~10)。
if (i % 2 == 0):判断i是否为偶数(如i=2、4、6、8、10)。
o若为偶数,执行continue:跳过当前迭代的sum += i,直接执行i++进入下一次迭代。
o若为奇数(i=1、3、5、7、9),跳过continue,执行sum += i,累加i到sum。
循环结束后,sum=1+3+5+7+9=25,输出结果。
2.3 注意:while循环中使用continue需手动更新变量
在while循环中使用continue时,若循环变量更新语句在continue之后,需提前更新,否则会导致死循环:
csharp

	int i = 1; 
	while (i <= 10) 
	{ 
	if (i % 2 == 0) 
	{ 
	i++; // 必须先更新i,否则continue后i不变,死循环 
	continue; 
	} 
	sum += i; 
	i++; // 奇数时正常更新i 
	}
  1. return:退出方法
    3.1 作用
    return用于立即退出当前方法,并返回值(若方法有返回类型)。执行后,方法内return后的代码不再执行。
    3.2 实例1:void方法中使用return(无返回值)
    csharp
	static void CheckAge(int age) 
	{ 
	if (age < 0) 
	{ 
	Console.WriteLine("年龄不能为负数"); 
	return; // 退出方法,后续代码不执行 
	} 
	Console.WriteLine($"年龄:{age}"); 
	} 
	
	// 调用方法 
	CheckAge(-5); // 输出:年龄不能为负数(return后,不执行Console.WriteLine($"年龄:{age}")) 
	CheckAge(20); // 输出:年龄:20(未触发return,执行后续代码)

讲解:
CheckAge是void方法(无返回值),return后无值,仅用于退出方法。
当age=-5时,if条件成立,执行return,方法提前结束,Console.WriteLine($"年龄:{age}")不执行。
3.3 实例2:有返回值的方法中使用return
csharp

	static int Max(int a, int b) 
	{ 
	if (a > b) 
	return a; // 返回a并退出方法 
	else 
	return b; // 返回b并退出方法 
	} 
	
	// 调用方法 
	int result = Max(5, 10); 
	Console.WriteLine(result); // 输出:10(a=5 < b=10,return b)

讲解:
Max方法返回int类型,return a或return b将结果返回给调用者。
方法执行到return后立即退出,后续代码(如有)不执行。
4. 基础知识拓展
4.1 三者核心区别对比

语句 作用范围 效果 适用场景
break 循环(for/while/foreach)、switch 跳出当前循环或switch 提前结束循环、避免switch贯穿
continue 循环 跳过当前迭代,进入下一次迭代 过滤无效数据,仅执行有效迭代
return 方法 退出当前方法,返回值(如有) 满足条件时提前结束方法执行

4.2 常见错误及避免
switch中忘记break:编译报错(C#不允许隐式贯穿),需在每个非空case后加break。
continue导致死循环:while循环中,continue前未更新循环变量(如i++),导致变量始终满足循环条件。
return后有代码:return后的代码永远不会执行(“不可达代码”),编译警告,需删除或调整逻辑。
4.3 使用建议
优先用break而非复杂条件:查找元素时,用break比if (found) { ... }更简洁。
return减少嵌套:方法中提前用return处理异常情况(如参数校验),可减少if-else嵌套。
避免过度使用跳转语句:过多break/continue/return会使代码逻辑混乱,仅在必要时使用。
总结
break:跳出循环或switch,作用于最近的结构。
continue:跳过循环当前迭代,进入下一次,不退出循环。
return:退出方法,返回值(如有),作用于整个方法。
掌握三者的区别和使用场景,能更精准地控制程序流程,写出高效、清晰的代码。

本站原创,转载请注明出处:https://www.xin3721.com/ArticlecSharp/c49351.html


相关教程