笔记2 循环

四种循环

四种循环:
while
for //用的最多
foreach //用的最多
do…while //用的最少

while

while(条件){     
            1.
            2.
}    //只要这个条件满足,就会执行{}里的语句。语句执行完后,再来判断是否满足条件,
      //若满足,则继续执行{}里的语句,直到不满足条件时为止。

            int n = 0;
            while (n < 10)
            {
                Console.WriteLine(n);   //输出一行n的值
                n++;         //n自增
            }
            //为了不让程序退出
            Console.ReadKey();

通常像这样的判断一个数值与另一个数值的关系,会用for
while一般会用来做“死循环”。给它一个“死循环”(true或者1)之后,它就会一直执行里面的代码。
内部做一个条件,当达到这个条件时,才跳出“死循环”。

          while (true)
            {
                Console.WriteLine(n);   //输出一行n的值
                Update()     //例如:写了Update这样一个方法,就会一直被调用
            }
            //为了不让程序退出
            Console.ReadKey();

do…while(很少用)

do
{
     1.
     2.
} while(条件)
 //do...while,条件是在后面。它先运行{}里的代码,之后再判断是否满足条件。
 //所以即便是初始值不满足条件,它也会执行1次{}里的代码。

            int n = 0;    
            do
            {
                n++;
            Console.WriteLine(n);
               
            } while (n < 10);
            
            /*n的初始值为0,先运行{}里的代码:首先运行n++,变为1;之后输出一行n的值——1。
            接下来进行判断是否小于10,由于小于,所以再次循环。直到n=9时,n++得10,并且输出。
            进行判断,不再满足条件,循环停止,输出的数值是1~9,且一个数字占一行。
            */
            //为了不让程序退出
            Console.ReadKey();

for (用的最多)

for的用法一

for(变量的声明;条件; 对变量进行操作)
{
     1.
     2.
} 
//注意间隔用分号
//注意执行顺序:
for(顺序1:变量的声明;顺序2-5-8:条件;顺序4-7:对变量进行操作)
{
    顺序3-6:代码
}
顺序9:循环外代码。    //比如此处,经判断条件不满足,则会跳出循环,执行循环外的代码。

      for(int i = 0; i < 10; i += 3)     //for(声明i=0,条件是i是否小于10,操作:i自加3)
            {
                Console.WriteLine(i);           //每行输出一个i的值
            }
//结果:各行输出的数字分别是0、3、6、9

            //为了不让程序退出
            Console.ReadKey();

for的用法二(遍历)

特点:可以规定遍历次数,可以修改遍历后的信息。

      int[] items = { 1001, 1002, 1003, 1004 };
 //声明一个数组,叫items,即物品的Id集合。 这个数组里有1001号物品、1002号物品、1003号物品、1004号物品。
            //遍历(依次打印)
            for(int i = 0; i < items.Length; i++)     
            /*
                此时,int i = 0中的i代表索引,即当前拿数组里的第几项;0就代表拿第1项。
                items.Length,意思是数组长度。此处i应该小于数组长度,其实可以写成i < 4。
                因为这个数组总共4项,所以最大是4.如果写成“i < 5”,就越界了。                                
                */
            {
                Console.WriteLine(items[i]);           //每行输出数组里的第几个
            }


            //为了不让程序退出
            Console.ReadKey();

foreach(快速遍历)

特点:不需要输入数组长度,但不能规定遍历到第几次,不可修改快速遍历得到的信息。

   int[] items = { 1001, 1002, 1003, 1004 };
   //声明一个数组,叫items,是物品的Id集合。 这个数组里有1001号物品、1002号物品、1003号物品、1004号物品。
//快速遍历
   foreach(int n in items) //这个结构分两部分,由in隔开。in右侧为你要快速遍历的数组名称,左侧放一个变量。
   {                        //这里的n与上面的i不同,i表示索引,而此处的n是直接被赋值的。
                                     //也就是说,此处含义为:从数组里取出一个值直接给了n

    Console.WriteLine(n);    //此时,打印只需要打印n的值即可。
    } 
            

     //为了不让程序退出
    Console.ReadKey();

两个通用关键字

两个通用关键字:
break 跳出 //用的多
continue 继续

break 跳出(用的多)

跳出的意思是,如果满足条件,就会跳出离它最近的循环。
也就是说:如果不满足条件,就继续break下面的循环体,接着再次进入循环。
直到不满足条件时,才会跳出,break下面的循环体也不会再被执行。

:查找1002号物品

      int[] items = { 1001, 1002, 1003, 1004 };
   //声明一个数组,叫items,即物品的Id集合。 这个数组里有1001号物品、1002号物品、1003号物品、1004号物品。
            //遍历(依次打印)
            for(int i = 0; i < items.Length; i++)     
               /*
                此时,int i = 0中的i代表索引,即当前拿数组里的第几项;0就代表拿第1项。
                items.Length,意思是数组长度。此处i应该小于数组长度,其实可以写成i < 4。
                因为这个数组总共4项,所以最大是4.如果写成“i < 5”,就越界了。                                
                */
            {
               Console.WriteLine(items[i]);    //每行输出数组里的第几个
               
               if (items[i] == 1002)        //if(条件){},如果满足条件就执行一次{}里的代码;
                {                             // 如果不满足,则跳出。相当于一次性的while。
                    break;     //break是跳出离它最近的那个循环,此处是for这个遍历循环。
                }

             }
               
/*结果:输出1001、1002,分别各占一行。如果 Console.WriteLine(items[i]);和if互换位置,则结果为1001。
因为首先1001不等于1002,所以会继续执行break之后的循环体,将1001写出来。之后再次进入循环,i++,得到1002。
因为1002满足if,所以会break(跳出了for循环)。跳出了循环,break后的循环体便不会被执行了,所以没有写出1002。*/
           
            //为了不让程序退出
            Console.ReadKey();

continue 继续

继续的意思是,如果满足条件,就忽略continue下面的循环体,接着再次进入循环。
如果不满足条件,就会继续continue下面的循环体,然后再进入循环。

 int[] items = { 1001, 1002, 1003, 1004 };
//声明一个数组,叫items,是物品的Id集合。 这个数组里有1001号物品、1002号物品、1003号物品、1004号物品。
            //遍历(依次打印)
            for(int i = 0; i < items.Length; i++)     /*
                此时,int i = 0中的i代表索引,即当前拿数组里的第几项;0就代表拿第1项。
                items.Length,意思是数组长度。此处i应该小于数组长度,其实可以写成i < 4。
                因为这个数组总共4项,所以最大是4.如果写成“i < 5”,就越界了。                                
                */
            {
                if (items[i] == 1002)        /*if(条件){},如果满足条件就执行一次{}里的代码;
                                                如果不满足,则跳出。相当于一次性的while。*/
                {
                    continue;
                }
                Console.WriteLine(items[i]);           //每行输出数组里的第几个

//结果:除了1002,其他都会被输出。输出了1001、1003、1004。            
     
            //为了不让程序退出
            Console.ReadKey();

:查找1002号物品

 int[] items = { 1001, 1002, 1003, 1004 };
 //声明一个数组,叫items,是物品的Id集合。 这个数组里有1001号物品、1002号物品、1003号物品、1004号物品。
            //遍历(依次打印)
            for(int i = 0; i < items.Length; i++)     /*
                此时,int i = 0中的i代表索引,即当前拿数组里的第几项;0就代表拿第1项。
                items.Length,意思是数组长度。此处i应该小于数组长度,其实可以写成i < 4。
                因为这个数组总共4项,所以最大是4.如果写成“i < 5”,就越界了。                                
                */
            {
                if (items[i] != 1002)        /*if(条件){},如果满足条件就执行一次{}里的代码;
                                              如果不满足,则跳出。相当于一次性的while。*/
                {
                    continue;
                }
                Console.WriteLine(items[i]);           //每行输出数组里的第几个

//结果:只输出1002。因为,不等于1002的话,就满足了if条件,触发了continue导致continue下面的循环体没有被执行,
而是再次进入循环。直至遍历完。            
     
            //为了不让程序退出
            Console.ReadKey();

break和continue的理解练习

          int[] items = { 1001, 1002, 1003, 1004 };
  //声明一个数组,叫items,是物品的Id集合。 这个数组里有1001号物品、1002号物品、1003号物品、1004号物品。
            //遍历(依次打印)
            for(int i = 0; i < items.Length; i++)     /*
                此时,int i = 0中的i代表索引,即当前拿数组里的第几项;0就代表拿第1项。
                items.Length,意思是数组长度。此处i应该小于数组长度,其实可以写成i < 4。
                因为这个数组总共4项,所以最大是4.如果写成“i < 5”,就越界了。                                
                */
            {
          
                if (items[i] == 1001)    //if(条件){},如果满足条件就执行一次{}里的代码;如果不满足,则跳出。
                {                       //如果不满足,则跳出。相当于一次性的while。相当于一次性的while。
                    continue;
                }
                Console.WriteLine(items[i]);           //每行输出数组里的第几个

                if (items[i] == 1003)
                {
                    break; 
                }

            }
            
/*分析:
首先1001符合第一个if条件,所以触发了continue,导致continue下面的循环体不能被执行。
接着再次进入循环,此时因为i++的1002,1002不符合第一个if,所以执行了continue下面的程序,写出了1002。
由于不满足第二个if,所以没有触发break,再次进入循环。
由于i++得1003,1003不满足第一个if,所以执行了continue下面的程序,写出了1003。
由于满足第二个if,所以触发break,跳出了循环。  
最终结果为:输出了1002、1003.          
 */
            //为了不让程序退出
            Console.ReadKey();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值