C# 学习笔记——基本的控制结构

基本控制结构

顺序结构
分支结构
循环结构
break和continue语句

1 顺序结构

程序从Main函数进入,按照语句在程序中的先后次序一条一条的顺序执行

2 分支结构

(1)if 语句
(2)if···else语句
(3)if···else if 语句
(4)switch···case语句

总结:
if···else if 语句和switch···case语句的比较
相同点:都可以实现多分支结构
不同点:if···else if 语句处理范围,switch···case语句一般只能用于等值比较。

if 有条件的执行一条语句
if···else 有条件的执行一条或另一条语句
switch···case 有条件的执行一组语句中的一条语句

(1)if语句

语法:
f (表达式)
{
语句1;
···
}

表达式:一般为关系表达式或者bool类型的值
执行过程:程序运行到if处,首先判断if所带的小括号中的表达式,如果为True,则执行语句1,如果为false。则跳过if结构,继续向下执行。
特点:先判断,再执行,有可能一行代码都不执行,用于一种情况的判断。

			//编程实现:如果跪键盘的时间大于60分钟,那么媳妇奖励我不用做晚饭了
            Console.WriteLine("请输入你跪键盘的时间:");
            int mins=Convert.ToInt32(Console.ReadLine());
            bool b = mins > 60;
            //如果你想要表达的含义是当b的值为true时去执行if中的代码,那么语法上==true可以省略
            //如果你想要表示的是当b的值为false时去执行if中的代码,那么语法上==false不能省略
            if (b)
            {
                Console.WriteLine("媳妇奖励我不用做晚饭了");
            }
            Console.ReadKey();

在这里插入图片描述

(2)if···else语句

语法:
if(表达式1)
{
语句1;
···
}
else
{
语句2;
···
}

执行过程:程序执行到if处,首先判断if所带的小括号中的表达式如果为true,则执行语句1,执行完成后,跳出if-else结构;如果表达式为false,则跳过if语句,执行else所带的大括号中的语句2,执行完成后,跳出if-else结构。
特点:先判断,再执行,最少都要执行一条代码。用于两种情况的判断。

注意:else永远跟他距离最近的if匹配。

			//练习:如果小赵的考试成绩大于90(含)分,那么爸爸奖励他100元钱,
            //否则的话,爸爸就让小赵跪方便面.
            Console.WriteLine("请输入小赵的成绩:");
            int score = Convert.ToInt32(Console.ReadLine());
            if (score >= 90)
            {
                Console.WriteLine("奖励你100块");
            }
            else
            {
                Console.WriteLine("跪泡面");
            }
            Console.ReadKey();

在这里插入图片描述

(3)if···else if语句

语法:
if(表达式1)
{
语句1;
···
}
else if(表达式2)
{
语句2;
···
}
else if(表达式3)
{
语句3;
···
}

else
{
语句n+1;
}

执行过程:程序首先判断第一个if所带的小括号中的表达式1,如果位true,则执行语句1,执行完成后,立即跳出if else-if结构。如果表达式1位false,则继续向下进行判断,依次的判断每一个if所带的表达式,如果为true,就执行相应的语句,如果为false,则继续向下判断,如果每个表达式都为false,就看当前这个if else-if结构中是否存在else。如果有else的话,则执行else中语句,如果没有else,则整个 if-else if什么都不做。else可以省略。

            //练习:提示用户输入用户名,然后再提示输入密码,如果用户名是“admin”并且密码是“88888”,
            //则提示正确,否则,如果用户名不是admin还提示用户用户名不存在,
            Console.WriteLine("请输入用户名:");
            string name = Console.ReadLine();
            Console.WriteLine("请输入密码:");
            string pwd = Console.ReadLine();

            if (name == "admin" && pwd == "888888")
            {
                Console.WriteLine("登录成功");
            }
            //第二种情况:密码错误
            else if (name == "admin")
            {
                Console.WriteLine("密码错误");
            }
            //第三种情况:用户名错误
            else if (pwd == "888888")
            {
                Console.WriteLine("用户名错误");
            }
            //第四种情况:用户名和密码全都错误
            else
            {
                Console.WriteLine("用户名和密码全都错误,程序退出");
            }
            Console.ReadKey();

在这里插入图片描述

(4) switch···case语句

用来处理多条件的定值判断。
语法:
switch(变量或者表达式的值)
{
case 常量1:语句1;
break;
case 常量2:语句2;
break;
case 常量3:语句3;
break;

default:语句n+1;
break;
}

执行过程:程序执行到switch处,首先将括号中变量或者表达式的值计算出来,然后拿着这个值依次跟每个case后面所带的常量值进行匹配,一旦匹配成功,则执行该case所带的语句,执行完成后,遇到break。跳出switch-case结构。如果,跟每个case所带的值都不匹配。就看当前这个switch-case结构中是否存在
default,如果有default,则执行default中的语句,如果没有default,则该switch-case结构什么都不做。

			// 成绩>=90 :A      
            //90>成绩>=80 :B 	
            //80>成绩>=70 :C
            //70>成绩>=60 :D
            //         成绩<60  :E

            Console.WriteLine("请输入一个考试成绩");
            int score = Convert.ToInt32(Console.ReadLine()); //0-100

            switch (score / 10)//你要把范围 变成一个定值
            {
                case 10: //case 10要执行的代码跟case 9是一样的
                case 9:
                    Console.WriteLine("A");
                    break;
                case 8:
                    Console.WriteLine("B");
                    break;
                case 7:
                    Console.WriteLine("C");
                    break;
                case 6:
                    Console.WriteLine("D");
                    break;
                default:
                    Console.WriteLine("E");
                    break;
            }
            Console.ReadKey();

在这里插入图片描述

3 循环结构

(1)while 循环
(2)do···while循环
(3)for循环
(4)死循环

while和do···while的区别
(1)语法不同
(2)当初始值不满足循环条件时,while循环一次都不执行循环体,do···while循环会执行一次循环体

(1)while循环

语法:
while(循环条件)
{
循环体;
}

执行过程:程序运行到while处,首先判断while所带的小括号内的循环条件是否成立,如果为true,则执行循环体,执行完一遍循环体后,再次回到循环条件进行判断,如果依然为true,则继续执行循环体,如果为false,则跳出while循环。
特点:先判断,再执行,有可能一遍循环都不执行。

			//不断要求用户输入学生姓名,输入q结束.
			string name = "";
            while (name != "q")
            {
                Console.WriteLine("请输入学员姓名,输入q结束");
                name = Console.ReadLine();
            }
            Console.ReadKey();

在这里插入图片描述

(2)do···while循环

语法:
do
{
循环体;
}while(循环条件);

执行过程:程序首先会执行do中的循环体,执行完成后,去判断do-while循环的循环条件,如果为true,则继续执行do中的循环体,如果为false,则跳出do-while循环。
特点:先循环,再判断,最少执行一遍循环体。

			//不断要求用户输入学生姓名,输入q结束.
			string name="";
			do
            {
                Console.WriteLine("请输入学员姓名,输入q结束");
                name = Console.ReadLine();

            } while (name != "q");
            Console.ReadKey();

在这里插入图片描述

(3) for循环

语法:
for(表达式1;表达式2;表达式3)
{
循环体;
}

表达式1:一般为声明循环变量,记录循环的次数(int i=0;)
表达式2:一般为循环条件(i<10)
表达式3:一般为改变循环条件的代码,使循环条件终有一天不再成立(i++)。
执行过程:程序首先执行表达式1,声明了一个循环变量用来记录循环的次数,然后执行表达式2,判断循环条件是否成立,如果表达式2返回的结果为true,则执行循环体。当执行完循环体后,执行表达式3,然后执行表达式2继续判断循环条件是否成立,如果成立则继续执行循环体,如果不成立,则跳出for循环。

			//向控制台打印10遍  你好啊
            for (int i = 0; i < 10; i++)
            {
                Console.WriteLine("你好啊");
            }
            Console.ReadKey();

在这里插入图片描述

for循环的嵌套

一个for循环里面又有一个或者多个for循环

//打印舅舅乘法表
            for (int i = 1; i < 10; i++)
            {
                for (int j = 1; j <= i; j++)
                {
                    Console.Write("{0}*{1}={2}", i, j, i * j);
                }
                Console.WriteLine();
            }
            Console.ReadKey();

在这里插入图片描述

(4) 死循环

如果没有能改变循环变量的条件,也就是循环条件永远都成立,我们称之为死循环。

//最简单的死循环
while(1)
{
	Console.WriteLine("你好");
}
Console.ReadKey();

break和continue语句

break是直接结束循环,而continue是跳过本次循环,继续执行下一次循环。

break语句

作用:可以跳出switch语句,也可以跳出当前循环(如果使嵌套循环,则只可以跳出一层循环)
break语句一般不能单独使用,常用在switch···case语句和循环结构中,表示当满足某些条件的时候,循环结束。

			 //找出100内所有的素数
            for (int i = 2; i <= 100; i++)
            {
                bool b = true;
                for (int j = 2; j < i; j++)
                {
                    //除尽了说明不是质数,也就没有在继续下去取余的必要了
                    if (i % j == 0)
                    {
                        b = false;
                        break;
                    }

                }
                if (b)
                {
                    Console.WriteLine(i);
                }

            }
            Console.ReadKey();

在这里插入图片描述

continue语句

立即结束本次循环,再判断循环条件,如果成立,则进入下一次循环,否则退出循环。

			//练习1:用 while continue实现计算1到100(含)之间的除了能被7整除之外所有整数的和。
            int sum = 0;
            int i = 0;
            while (i <= 100)
            {
                if (i % 7 == 0)
                {
                    i++;
                    continue;
                }
                else
                {
                    sum += i;
                }
                i++;
            }
            Console.WriteLine(sum);
            Console.ReadKey();

在这里插入图片描述

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值