Keep on going never give up.

Let's Go

C# 学习笔记(8)跳转语句

C#Lonely2019-04-26 22:48:3636次0条

跳转语句是程序运行到某一位置时,可以跳转到程序中另一行代码的语句。

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();
        }                        
    }
}






暗锚,解决锚点偏移

文章评论

    嘿,来试试登录吧!