跳转语句是程序运行到某一位置时,可以跳转到程序中另一行代码的语句。
C#中包含4种跳转语句,分别是:
● break语句
● continue语句
● goto语句
● return语句
1、break语句
break语句的作用:(1)、switch语句中从case语句中跳出,结束switch分支语句。(2)、用于跳出循环语句,直接结束当前循环。
代码示例:
//break语句 //例:通过for迭代语句,输出1-500这500个数,每行输出10个数,当输出的值同时为2、3、4、5、6、7的倍数时,跳出循环; Console.WriteLine("输出1-500这500个数,每行输出10个数,当输出的值同时为2、3、4、5、6、7的倍数时,跳出循环"); for (int i = 1; i < 501; i++) { if (i % 10 == 0) Console.WriteLine(i); else { Console.Write(i + " "); if (i < 10) Console.Write(" "); if (i < 100) Console.Write(" "); } if ((i % 2 == 0) && (i % 3 == 0) && (i % 4 == 0) && (i % 5 == 0) && (i % 6 == 0) && (i % 7 == 0)) { Console.WriteLine("\n"+i+ "值同时为2、3、4、5、6、7的倍数"); break; } } Console.ReadKey();
2、continue语句
continue语句使用格式:continue;
作用:用于立即终止当前循环语句(即continue语句后面的代码语句不再执行),结束本次循环,开始下一次循环。continue语句只能用于迭代语句中。
代码示例:
//continue语句 //例:输出1-50以内的奇数 Console.WriteLine("50以内的奇数有:"); for (int i = 1; i <51; i++) { if (i % 2 == 0) continue; //停止本次迭代,并非跳出迭代语句;运行i++开始下一次循环; Console.Write(i+"\t"); } Console.ReadKey();
3、goto语句
goto语句使用格式:goto 标识符;
标识符标识程序位置的方法:标识符: 注:标识符名称自己定义,后跟:(冒号)。
作用:当程序执行到goto语句时,程序会直接跳转到标识符所标识的程序位置,继续执行代码,它的使用会使代码易读性下降,在编写程序的时候不建议使用goto语句。
代码示例:
//go to语句 //例:做选择题,5*60等于多少 Console.WriteLine("5*60等于多少?请根据以下选项选择正确答案,回车键确认:"); Console.Write("1:30\n2:100\n3:300\n4:3000\n请输入答案:"); int answer = int.Parse(Console.ReadLine()); if (answer >= 1 && answer <= 4) { if (answer == 3) { goto exactness; //如果答案为3选项,则跳转到正确标识符内,执行里面的代码; } else { goto error; //否则跳转到错误标识符内,执行里面的代码; } error: //标识符,选择答案错误时执行的代码 { Console.WriteLine("很遗憾!您答错了"); goto end; //当用户输入错误答案跳转到error时,执行完error内的代码后,会继续往下执行代码,为了不让它执行下面的exactness内的代码,所以再让它跳转到结束位置 } exactness: //标识符,选择答案正确时执行的代码 { Console.WriteLine("恭喜您!您答对了"); } } else { Console.WriteLine("您所输入的选项不存在!"); } end: //标识符,结束位置 Console.ReadKey();
4、return语句
return语句一般有两种使用格式:(1)、return; (2)、return 表达式;
return语句一般出现在方法当中,当调用方法时,执行到return语句,会跳出当前方法,返回到调用此方法所在的函数。如果return出现在循环中,则会退出循环和循环所在的函数。
代码示例:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApp { class Program { static void Main(string[] args) { //例:通过方法求三个数的和 //使用格式:(1)return; Console.WriteLine("请输入三个数,按回车键确认每个数的输入:"); double s1 = double.Parse(Console.ReadLine()); double s2 = double.Parse(Console.ReadLine()); double s3 = double.Parse(Console.ReadLine()); sum(s1, s2, s3); //调用方法 Console.ReadKey(); } static void sum(double s1, double s2, double s3) { Console.WriteLine("您输入的三个值的和为:{0}", s1 + s2 + s3); return; //执行到 return 语句,直接跳转回到Main()函数 } } }
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApp { class Program { static void Main(string[] args) { //例:通过方法求三个数的和 //使用格式:(2)return表达式; Console.WriteLine("请输入三个数,按回车键确认每个数的输入:"); double s1 = double.Parse(Console.ReadLine()); double s2 = double.Parse(Console.ReadLine()); double s3 = double.Parse(Console.ReadLine()); double s = sum(s1, s2, s3); //调用方法 Console.WriteLine("您输入的三个值的和为:" + s); Console.ReadKey(); } static double sum(double s1, double s2, double s3) { return (s1 + s2 + s3); //执行到 return 语句,直接跳转回到Main()函数 } } }
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApp { class Program { static void Main(string[] args) { //示例return出现在循环中 for(int i=0; i<5; i++) { if(i == 2) return; Console.WriteLine("当前i值为:" + i); } Console.WriteLine("循环已经被退出了,连循环当前所在的函数也被退出了,所以你不会看见我的输出,因为我根本没被执行!"); Console.ReadKey(); } } }
文章评论