黑马程序员————————C#基础知识之结构体(二)

本文详细介绍了 C# 中的循环结构,包括 while、do-while 和 for 循环的应用场景与注意事项,并解释了 break 和 continue 的使用方法。此外还探讨了三元表达式、goto 语句等控制流程工具。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 ----------------------ASP.Net+Android+IOS开发.Net培训、期待与您交流! ---------------------- 

l      循环结构while

l      循环结构do-while

l      循环结构for

l      跳出循环语句

l      三元表达式

l      小节和goto

1. while 循环结构

语法:while (循环条件)  //循环条件的运算值必须是bool类型

       {

          循环内容(循环体)  

       }

特点:先判断,后执行

执行过程:先判断循环条件,如果循环条件的运算值为true,则执行循环体,执行完后再次判断循环条件;如果最初判断循环条件的运算值为false,则直接跳出该语法(不执行循环体)。

注意:循环体中一定要有能使循环条件运算值改变为false的语句,这样程序才不会形成死循环。如下:             

     //n次循环中,如果i的值为0,则循环条件为i<n;

     //n次循环中,如果i的值为1,则循环条件为i<=n;

     //因为i控制着循环次数,所以i又叫循环变量

     Console.WriteLine("请输入想要循环的次数");

     int n =Convert.ToInt32(Console.ReadLine());

     int i = 0;

     while (i < n)

        {

          Console.WriteLine("循环中。。。");

           i++;             //   这一句用于改变循环条件,使其运算值可以为false,防止形成死循环

        }

执行过程图:

例子:

                     Console.WriteLine("这道题你会做了吗?");

                     string input = Console.ReadLine();

                     if (input == "会了")

                        { Console.WriteLine("放学"); }

                     else

                     {

                         int i = 1;

                         while (i <= 5 && input != "会了")

                         {

                             Console.WriteLine("好吧,我再讲一遍");

                             Console.WriteLine("这道题你会做了吗?");

                             input = Console.ReadLine();

                             i++;

                         }

                         Console.WriteLine("OK,放学!");

                     }

2.do while 循环结构

  语法:

        do {

            循环内容(循环体)

            }

         while(循环条件);

    执行过程:先执行循环内容,然后判断循环条件,如果运算值为true,则转向循环内容从新执行,再接着判断,知道循环条件运算值为false,则此程序执行完成。

While循环中,循环条件一开始为false,循环体不会执行,而do while 即使循环条件为false,循环体也至少执行一次。

3.循环结构中,要考虑到各种条件改变,防止出现死循环。

 string input, pass;

 bool flag = false;

     do

      {            //如果在这儿没有这句话,这个程序,将在第一次用户输错密码或用户名后出现          flag = false; // bug,即flag的值一直为true,违背了非死循环程序中循环条件可能运算出false的定理

       Console.WriteLine("请输入您的用户名");

       input = Console.ReadLine();

       Console.WriteLine("请输入您的密码");

       pass = Console.ReadLine();

       if (input != "admin" ||pass!="888888")

       {Console.WriteLine("您输入的用户名或密码错误,请重新输入");

       flag = true;

       }

      } while (flag);

       Console.WriteLine("登录成功");

4.程序的活学活用

             string input="";

               int input1 = 0, input2 = 0;

               bool flag=false;              

                   do

                   {

                        try

                         {

                       Console.WriteLine("请输入一个数字");

                       input = Console.ReadLine();

                       input1 = Convert.ToInt32(input);

                       if (input2 < input1)

                       { input2 = input1; }

                         }

                        catch

                        {

                            if (input != "end")

                            {

                            Console.WriteLine("您输入的程序错误");

                            input = "end";  //为了跳出循环结构

                            flag = true;    //为了跳出循环后不执行input2的输出

                            }

                        }

                   }

                   while (input != "end");

                   if (flag = false)

                   { Console.WriteLine(input2); }

                   Console.ReadKey();

5.for循环结构

  语法for(表达式1;表达式2;表达式3

          {循环体}

执行过程:先执行表达式1,然后判断表达式2,如果判断的运算值为true,则执行循环体,然后跳转执行表达式3,执行完后再次判断表达式2,如果表运算值为true,则执行循环体,再跳转表达式3,再判断表达式2...,直到表达式2运算值为false则直接跳出该结构,执行后边的程序。

简而言之:表达式1相当于变量的声明和赋值,只会执行一次,表达式2相当于循环条件,表达式3相当于循环变量。

执行图:

6.for 循环结构的例子

  矩阵九九乘法表

   Console.WriteLine("矩阵九九乘法表");                  

           for (int i = 1; i <= 9; i++)                       //循环嵌套

           {    //外循环

               for (int j = 1; j <= 9; j++)  

               {

                   Console.Write("{0}X{1}={2}\t", i, j, i * j);

                  //内循环

               }

               Console.WriteLine();        //外循环内容

           }

 

           Console.ReadKey();

梯阵九九乘法表

        Console.WriteLine("梯阵九九乘法表");

        for (int i = 1; i <= 9; i++)       //外层循环控制行号,i为行号

           {   

               for (int j = 1; j <= i; j++) //i行第j个式子

               {

                   Console.Write("{0}X{1}={2}\t",i,j,i*j);

               }

               Console.WriteLine();

           }

           Console.ReadKey();

 

输入一个数字,输出可能的加法组合

 Console.WriteLine("请输入一个数字");

           bool isnumber = false;

           int number = 0;

           while (isnumber == false)

           {

               try

               {

                   number = Convert.ToInt32(Console.ReadLine());

                   isnumber = true;

               }

               catch

               {

                   Console.WriteLine("您输入的不是数字,请重新输入");

                   isnumber = false;

               }

           }

           for (int i = 0; i < number + 1; i++)

           {

               Console.WriteLine("{0}+{1}={2}", i, number - i, number);

           }

           Console.ReadKey();

已知次数一般使用for循环。

7.跳出循环语句

    1))break 

用于while/do while /for循环结构中,退出当前循环。

    执行过程图:

注意,break跳出的是当前所在的循环结构。

 

2))continue

用于循环结构中,程序执行到continue时,立即结束本次循环(即,不再执行continue下面的程序)执行下一次循环,对于whiledo while 循环结构来说,就是重新对循环条件进行判断,如果值为true则再次进入循环结构,直到遇到continue如此往复;而对于for循环结构来说,continue之后程序跳转到表达式3,即循环变量,再判断循环条件...

因此,如果不想让有continue的循环结构形成死循环,应该在continue之前写入循环变量。

执行过程图

8.三元表达式

  语法表达式1?表达式2:表达式3

 

   要求表达式1运算值为bool类型。

执行过程:先执行表达式1,如果运算值判断为true,则输出表达式2的运算值(即表达式2的值为整个三元表达式的值),如果运算值判断为false,则输出表达式3的运算值(即表达式3的值为整个三元表达式的值)。

表达式2和表达式3的类型一定要兼容。

  例如:   int a = 1,b=2;

              Console.WriteLine(a>b?a:b);

               Console.ReadKey();

9.小节和goto

  顺序结构:语句按顺序执行

  分支结构:语句在满足特定的条件下执行

  if  if-else, if-else if ,switch-case, 表达式1?表达式2:表达式3

    循环结构:语句在满足特定下条件执行多次

  while , do while , for

  跳转语句:

    break,continue,goto(可在程序内跳转到任何标签)

  goto 的基本语法:

                goto 标签;

            标签:

例如: 

           Console.WriteLine("输入的第一句话");

           goto label;

           Console.WriteLine("输入的第二句话");

           Console.ReadLine();

           Console.WriteLine("输入的第三句话");

           label:

           Console.WriteLine("输入的第四句话");

           Console.ReadKey();                 

---------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流! ---------------------- 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值