设为首页收藏本站【C#】第三章(2) 流程控制之循环结构
繁体中文

单小喏中文网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

单小喏中文网欢迎你的光临!!!
查看: 1239764|回复: 0

【C#】第三章(2) 流程控制之循环结构

[复制链接]

85

主题

89

帖子

1246

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1246

来自- 安徽阜阳

扫一扫,手机访问本帖
发表于 2014-3-24 21:55:04 | 显示全部楼层 |阅读模式
三、循环结构
我们需要一段代码、功能反复的去执行,要用到循环结构。在C#中循环结构有while、do{}while();、for、foreach

使用循环要关注三点:
1、创建循环条件
2、使循环条件成立
3、在循环体中改变条件,使条件不成立。
while
[C#] 纯文本查看 复制代码
 int temp = 1;//定义循环的条件
            while (temp<=10)   //使条件成立
            {
                Console.WriteLine(temp);
                temp++;//在循环体中使循环条件改变,等到不要继续的时候条件不成立,停止循环
            }


使用do{}while();实现
[C#] 纯文本查看 复制代码
 int temp = 1;//定义循环的条件,和while循环不同的是,条件不成立还会执行一次。
            do
            {
                Console.WriteLine(temp);
                temp++;//在循环体中改变循环的条件。
            } while (temp <= 10);//使条件成立,注意这里要有分号


使用for循环实现
[C#] 纯文本查看 复制代码
 int temp = 1;//定义循环的条件
            for (; temp <= 10; ) //使循环的条件成立
            {
                Console.WriteLine(temp);
                temp++;//在循环体中改变循环的条件
            }


对于for循环条件、条件的改变一般都是这样的写法;条件是否成立的表达式不能省略,省略就是死循环
[C#] 纯文本查看 复制代码
  for (int temp = 1; temp <= 10; temp++) 
            {
                Console.WriteLine(temp);
            }


假设循环10次的过程中,想要跳过5,我们可以加判断,使用continue关键字。
[C#] 纯文本查看 复制代码
 for (int temp = 1; temp <= 10; temp++)
            {
                if (temp == 5)  
                    continue;
                Console.WriteLine(temp);
            }


可以使用break关键字,去人为的去终止和结束循环。
[C#] 纯文本查看 复制代码
  for (int temp = 1; temp <= 10; temp++)
            {
                if (temp == 5)  
                    break;
                Console.WriteLine(temp);
            }


使用while循环改写
[C#] 纯文本查看 复制代码
 int temp = 1;
            while (1==1)//条件永远成立
            {
                if (temp == 5) //人为的去终止循环
                    break;
                Console.WriteLine(temp);
                temp++;
            }


break与return关键字
break无法单独使用,一般用在循环、switch语句。return可以单独使用;在循环中跳出语句为return时这行及后面的代码无法执行。(程序结束了。)

[C#] 纯文本查看 复制代码
int temp = 1;
            while (1==1)//条件永远成立
            {
                if (temp == 5)
                    break;//人为的去终止循环,break可以使用return关键字替代
                Console.WriteLine(temp);
                temp++;
            }
            Console.WriteLine("aaaa");
            //break;//该行代码报错


使用switch、case、break语句来替代等值的选择判断结构,提高效率!
[C#] 纯文本查看 复制代码
 int temp = 6;
            switch (temp)
            {
                case 5: Console.WriteLine("5"); break;//顺序可以随意切换,遇到break跳出
                case 1: Console.WriteLine("1"); break;
                case 2: Console.WriteLine("2"); break;
                case 3: Console.WriteLine("3"); break;
                case 4: Console.WriteLine("4"); break;
                default: Console.WriteLine("其他的值");
                    break;
            }


在C#中,如果switch对应的分支没有break那么这里不能加处理语句
[C#] 纯文本查看 复制代码
int temp = 6;
            switch (temp)
            {
                case 5:  //在C#中,如果该分支没有break那么这里不能加处理语句
                case 1: Console.WriteLine("1"); break;
                case 2: Console.WriteLine("2"); break;
                case 3: Console.WriteLine("3"); break;
                case 4: Console.WriteLine("4"); break;
                default: Console.WriteLine("其他的值");
                    break;
            }


习题
一、接收用户输入2个值,再接收运算符执行相应运算。以上运算反复执行,等到用户输入N/n 程序结束。
[C#] 纯文本查看 复制代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
/*一、接收用户输入2个值,再接收运算符执行相应运算。以上运算反复执行,等到用户输入N/n 程序结束。 */
namespace test
{
    class Program
    {
        static void Main(string[] args)
        {

            while (true)
            {
                Console.Write("输入第一个数是:");
                int a = Convert.ToInt32(Console.ReadLine());
                Console.Write("运输符号(+或者-):");
                char f = Convert.ToChar(Console.ReadLine());
                Console.Write("第二个数是:");
                int b = Convert.ToInt32(Console.ReadLine());
                switch (f)//分支进行判断下面
                {
                    case '+': Console.WriteLine("{0}+{1}={2}", a, b, a + b); break;
                    case '-': Console.WriteLine("{0}+{1}={2}", a, b, a - b); break;
                    case '*': Console.WriteLine("{0}+{1}={2}", a, b, a * b); break;
                    case '/': Console.WriteLine("{0}+{1}={2}", a, b, a / b); break;
                    default: Console.WriteLine("输入错误!!!"); break;


                }
                Console.Write("是否继续:y/n");
                Console.WriteLine();
                char f1 = Convert.ToChar(Console.ReadLine());
                if (f1 == 'n' || f1 == 'N')
                    return;
            }
        }
    }
}



二、实现乘法口诀表
[C#] 纯文本查看 复制代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
/*二、实现乘法口诀表 */
namespace test
{
    class Program
    {
        static void Main(string[] args)
        {
            
            for (int i=1; i<= 9;i++)
            {
                for (int j = 1; j <= 9; j++) 

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

                Console.WriteLine();
               
        }
    }
    }
    }
}


三、接收用户输入的用户名和密码,实现用户登录
[C#] 纯文本查看 复制代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
/***********************三、接收用户输入的用户名和密码,实现用户登录*****************************/
namespace test
{
    class Program
    {
        static void Main(string[] args)
        {
            string userId; //userId用来存储用户输入的用户名                                                                                      
            string passWord; //passWord用来存储用户输入的密码                                                                                   
            Console.Write("请输入用户名:");
            userId = Console.ReadLine();
            Console.WriteLine("*********我是分割线************");
            Console.Write("请输入密码:");
            passWord = Console.ReadLine();
            if (userId == "admin" && passWord == "admin")//判断账号密码是否正确,此if为正确后执行的语句块,break用于退出。
            {
                Console.WriteLine("\n*********我是分割线************\n");
                Console.WriteLine("\t 账号登陆成功!!!\n");


            }
            else if (userId == null || userId == "")//账号名未输入时的语句块
            {
                Console.WriteLine("\n*********我是分割线************\n");
                Console.WriteLine("\t   请输入账号!!!\n");

            }
            else if (passWord == null || passWord == "") //密码未输入时的语句块
            {
                Console.WriteLine("\n*********我是分割线************\n");
                Console.WriteLine("\t   请输入密码!!!\n");

            }
            else if (userId != "admin") //账号输入错误时的语句块
            {
                Console.WriteLine("\n*********我是分割线************\n");
                Console.WriteLine("\t用户名错误,请重新输入!!!\n");

            }
            else if (passWord != "admin")//密码输入错误时的语句块
            {
                Console.WriteLine("\n*********我是分割线************\n");
                Console.WriteLine("\t密码错误,请重新输入!!!\n");

            }


        }
    }
}


四、实现猜数字游戏。
1、用户输入小于等于0的数,提示“太小,继续”
2、用户输入1,提示“小了,继续”
3、用户输入2,提示“小了,但接近了,继续”
4、用户输入4,提示“大了,但接近了,继续”
5、用户输入5,提示“大了,继续”
6、用户输入大于等于6,提示“太大了,继续”
7、用户输入3,提示“恭喜你,猜对了。程序结束”
[C#] 纯文本查看 复制代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
/*四、实现猜数字游戏。*/
namespace test
{
    class Program
    {
        static void Main(string[] args)
        {
             int k = 0; 
            while (true) 
            { 
                Console.Write("请输入数值:"); 
                int a = Convert.ToInt32(Console.ReadLine()); 
                switch (a) //使用分支判断
                { 
                    case 0: Console.WriteLine("太小,继续"); break; 
                    case 1: Console.WriteLine("小了,继续"); break; 
                    case 2: Console.WriteLine("小了,但接近了,继续"); break; 
                     
                    case 4: Console.WriteLine("大了,但接近了,继续"); break; 
                    case 5: Console.WriteLine("大了,继续"); break; 
                    case 6: Console.WriteLine("太大了,继续"); break;
                    case 3: Console.WriteLine("恭喜你,猜对了。程序结束"); k = 1; Console.ReadLine(); break;  //i==3为正确答案,并执行语句块
                } 
                 
                if (k == 1) return;  
            } 
             
 
             
             
 
        } 
    } 
} 
        


五、实现用户登录,登陆正确结束  
[C#] 纯文本查看 复制代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
/*五、实现用户登录,登陆正确结束  */
namespace tset
{
    class Program
    {
        static void Main(string[] args)
        {
            string userId;  //userId用来存储用户输入的用户名
            string passWord; //passWord用来存储用户输入的密码
            for (; ; )
            {
                Console.Write("请输入用户名:");
                userId = Console.ReadLine();
                Console.WriteLine("************我是分割线**************");
                Console.Write("请输入密码:");
                passWord = Console.ReadLine();
                if (userId == "admin" && passWord == "admin") //判断账号密码是否正确,此if为正确后执行的语句块,break用于退出。
                {
                    Console.WriteLine("\n************我是分割线**************\n");
                    Console.WriteLine("\t   账号登陆成功!\n");

                    break;
                }
                else if (userId == null || userId == "")  //账号名未输入时的语句块
                {
                    Console.WriteLine("\n************我是分割线**************\n");
                    Console.WriteLine("\t   请输入账号!\n");

                }
                else if (passWord == null || passWord == "")  //密码未输入时的语句块
                {
                    Console.WriteLine("\n************我是分割线**************\n");
                    Console.WriteLine("\t   请输入密码!\n");

                }
                else if (userId != "admin")  //账号输入错误时的语句块
                {
                    Console.WriteLine("\n************我是分割线**************\n");
                    Console.WriteLine("\t用户名错误,请重新输入!\n");

                }
                else if (passWord != "admin")  //密码输入错误时的语句块
                {
                    Console.WriteLine("\n************我是分割线**************\n");
                    Console.WriteLine("\t密码错误,请重新输入!\n");

                }

            }
        }
    }
}
本文章来源于:学玩网









上一篇:【C#】第三章(1) 流程控制之顺序、选择结构
下一篇:【C#】第四章 异常处理与调测

帖子地址: 



+1
1239764°C
沙发哦 ^ ^ 马上
*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

 
发评论,即可赢取积分欧!

申请友链|意见反馈|小黑屋|手机版|Archiver|单小喏中文网 ( 皖ICP备13012632号-1 |网站地图  

GMT+8, 2016-12-8 17:51 , Processed in 0.254594 second(s), 46 queries .

Powered by danxiaonuo

© 2013-2016 danxiaonuo.

快速回复 返回顶部 返回列表