C#基础系列问题一break、continue、return、goto语句

时间:2022-04-10 08:39:07

一。break
    1. break语句形式: break;
    2. break语句功能:
       A. 在switch语句中,break是其语法本省的一部分,break语句会终止其后语句的执行,退出switch语句。
       B. 使一个循环立即结束,也就是说在循环中遇到break语句时,循环立即终止,程序转到当前循环体后的第一个语句去继续执行。
    3. 注意:
       A. break语句在循环中使用时,一般总是与if一起使用,当条件满足(或不满足)时,负责退出循环。
       B. 如果循环体中使用switch语句,而break出现在switch语句中,则它只用于结束switch,而不影响循环。
       C. break语句只能结束包含它的最内层循环,而不能跳了多重循环。
    4. 例: break语句的执行只能从while循环中退出,继续执行for循环的其它语句
而不是退出外层循环。

             for( )
             {
                …
                while ( )
                {
                    if( )
                    {
                        break ;
                    }
                }
                …
             }
二。continue  
    1.continue语句形式: continue;
    2.continue语句功能:   它只能出现在循环体中,其功能是立即结束本次循环,即遇到continue语句时,不执行循环体中continue后的语句,立即转去判断循环条件是否成 立,即中止当次循环进入下一次循环。 
    3.Continue与break语句的区别: continue只是结束本次循环,而不是终止整个循环语句的执行,break则是终止当前整个循环语句的执行,转到当前循环语句后的下一条语句去执行。
     程序表达式及流程图如下:
(1.)  while(表达式1)                         (2.)  while(表达式1)
       {                                                      {
             ……                                                  ……

             If(表达式2) break;                              if(表达式2) continue;
             ……                                                   ……

       }                                                      }

三.goto
    1.goto语句形式:goto语句是无条件转向语句,其一般形式为:goto 语句标号;
    2.功能:goto语句往往用来从多重循环中跳出。它在解决一些特定问题时很方便,但由于goto语句难于控制,尽量少用。
    3.例:

       当程序执行到goto语句时它会跳转到goto语句指向的语句标号开始执行
           IN:
              For()
              {
                   ……
                   Goto IN;
              }
            

四.Return  
    1.return语句形式: return (返回值);
    2.功能:return可以返回一个函数的值,并且跳出结束这个函数;
只要遇到return语句,程序就在那一行代码停止执行,执行控制将立刻返 回到调用该程序的代码处。
对于返回值类型为void的程序,return关键字单独作为完整的语句使用:return;
实例:

1)当return一个string类型时:以把一个字符串转换为小写为例

        //把一个字符串转换为小写并返回,功能同string.ToLower
        public static string ToLower(string str)
        {
            char[] array = new char[str.Length];   //定义一个字符数组,长度刚好等于给定的字符串的长度
            int diff = 'a' - 'A';   //计算差值,ASCII码值是A<a(固定的,不用知道这个差值多少)
            //使用一个循环读取给定的字符串,每次读取一个字符
            for (int i = 0; i < str.Length; i++)
            {
                char ch = str[i];  //把当前循环读取的字符赋值个ch
                char newch = '\0';
                //判断这个字符是否是大写
                if (char.IsUpper(ch))
                {
                    newch = (char)(ch + diff); //转换为小写
                }
                //如果这个字符为小写,不转换
                else
                {
                    newch = ch;
                }
                array[i] = newch;  //把转换后的字符放回字符串该循环位置
            }
            return new string(array);
        }

2)当return一个数组时:以返回一个int类型数组为例

     注意:return一个数组时,在使用的这个方法的时候,要在使用时声明一个同类型的数组用于接受方法返回的数组

public class Contains
    {
        // 按顺序输出小于给定数字的所有带7的数字及7的倍数
        public static int[] Contains7(int number)
        {
            int n = 0; //用于记录计算出来的符合要求的结果数目
            for (int i = 1; i <= number; i++)
            {
                //判断是否为7的倍数
                if (i % 7 == 0)
                {
                    n++;
                    continue;
                }
                string str = i.ToString();
                if (str.Contains('7'))
                {
                    n++;
                }
            }
            int[] arry = new int[n];//声明一个整形数组存放结果,长度刚好等于符合要求的个数
            int index = 0;
            //List<int> arry = new List<int>();
            for (int j = 1; j <= number; j++)
            {
                //判断是否为7的倍数
                if (j % 7 == 0)
                {
                    arry[index++] = j;
                    continue;
                }
                string str = j.ToString();
                if (str.Contains('7'))
                {
                    arry[index++] = j;
                }
            }
            return arry;
        }
        public static void Main(string[] args)
        {
            Console.WriteLine("请输入一个数:");
            int count = Convert.ToInt32(Console.ReadLine());
            //声明一个整形数组用于接收(静态类)
            int[] arry = Contains.Contains7(count);
            //循环输出结果
            for (int i = 0; i < arry.Length; i++)
            {
                Console.Write("{0}\0", arry[i]);
            }
            Console.Read();
        }
    }

希望有志同道合的人可以加入到群128874886,一起学习,一起分享,一起进步!