一、跳出循环
1.1 break(直接跳出条件循环,后面的程序将不执行)
它不仅可以用来终止switch语句,在循环语句中使用时还可以用来跳出循环,执行循环外的下一条语句。如果是在嵌套循环中使用,例如在内层的循环中使用break语句,那么程序只会跳出内层的循环,并不会影响到外层循环的执行。
int index = 0;
for (int i = 0; i < 5; i++)
{
if (i == 2)
{
//单个循环,跳出整个for循环,
//多个循环,跳出最内层for循环
break;
}
index = i;
}
Console.WriteLine(index);
1.2 continue(类似断点,跳出条件循环,但不影响继续执行)
C#中continue语句的工作原理与break语句类似,但是continue语句并不会跳出整个循环,而是跳过本次循环继续执行下一次的循环。
int index = 0;
for (int i = 0; i < 5; i++)
{
if (i == 2)
{
//多个循环,跳出最内层本次循环,但是继续执行最内层下一次循环
//单个循环,跳出本次循环,但是继续执行下一次循环
continue;
}
index = i;
}
Console.WriteLine(index);
1.3 goto(可以跳到指定位置执行语句)
C#中的goto语句也称为跳转语句,使用它可以控制程序跳转到指定的位置执行。不过并不建议在程序中多次使用goto语句,因为它会程序变得更加复杂。在使用goto语句来跳转程序之前,必须先在想要跳转的位置定义好一个标签(labels),标签的名称的定义和变量名相似,然后使用goto标签名;即可使程序跳转到指定位置执行。goto语句并不限于在循环中使用,其他的情况也可以使用,但是,goto语句不能从循环外跳到循环语句中,而且不能跳出类的范围。
int indexI = 0;
int indexJ = 0;
a: //a层
for (int i = 0; i < 5; i++)
{
b: //b层
for (int j = 0; j < 5; j++)
{
if (i == 3 && j == 2)
{
//如果多层循环,goto 跳转至指定位置,然后继续向下执行
//以此条件为例:
//跳至a,继续向下,会导致整个循环再一次被执行,造成整个程序一直无法结束,需要特别注意。
//跳至b,继续向下,会导致里面循环再一次被执行,造成整个程序一直无法结束,需要特别注意。
goto c;
}
indexJ = i;
}
indexI = i;
}
c:;
Console.WriteLine("indexI:" + indexI);
Console.WriteLine("indexJ:" + indexJ);