嵌套
嵌套:就是一层里面还有一层。
if语句中间可以包含n个if语句这种情况就称为:“嵌套”
嵌套if语句执行的流程:
先执行外层的if如果成立则执行内层的if语句。如果里面还包含if语句则还是这样执行。
PS:一个if语句只能对应一个else语句,而且只和最近的else语句匹配。所以在写if语句时一定要注意括号,否则当if语句较多时很容易出现匹配不当的情况,这种情况不属于语法错误,属于语义错误。
小窍门:书写if语句时当if后面的布尔表达式写完后立即回车换行然后打上一对大括号,然后光标回去一格然后回车。如果发现括号不匹配了,那么请首先找到左边的折叠标识进行折叠,这样能够帮助我们快速的找到括号不匹配的问题。
-----------------------------------------
嵌套if语句是当需要层层递进的判断时就使用if语句的嵌套
-----------------------------------
注意这里的并不是绝对的:
当出现嵌套if语句的逻辑时如果可以更加清晰话那么就改为多分支if语句
如果多分支if语句逻辑更加模糊的话那么就使用嵌套。
这样的事情称为:“代码优化”
什么是switch?
switch语句可以判断很多条件,适合从一组互斥的分支中选择一个分支执行。
语法说明
switch语句后面的表达式必须是一个变量
case 后面必须是常量,它的类型一定和switch表达式的类型一致。
default语句是可以省略的,如果有那么就只能有一个。
switch表达式的数据类型只能是:整数,字符,字符串,布尔,枚举
-----------------------------------------
switch语句的贯穿用法:
多个条件不同,但是执行一样这种情况下我们就可以使用switch的“贯穿”
虽然使用if也可以做到但是如果要判断的条件仅仅是等于关系那么使用switch会更加清晰容易阅读
程序的三种结构:
1、顺序
2、选择(判断)
3、循环
-----------------------------------------
什么是循环?
1、不断的重复进行--》循环
2、直到某条件不成立终止循环---》循环结束
3、如果条件永远成立则为“死循环”
----------------
两种情况:
1、先判断再执行(循环)
2、先执行一次再判断,条件为真则继续执行直到条件为假退出循环
---------------
C#中的四种循环语句
1、while(循环)
2、do...while(循环)
3、for(循环)
4、foreach(循环)
-------------------------
while循环是一种当型循环,就是当条件满足为真时执行循环,当条件不满足为假时退出循环。
while(布尔表达式)
{
//循环体语句
}<----不用写分号结束
----------------------------
循环的核心是控制循环的次数,所以一般使用整数进行控制,例如:int i;
循环的三要素:
1、初始部分:从哪里开始
2、终止条件:到哪儿结束
3、迭代部分:循环语句体的执行
条件虽然不同判断是一样都是等于而且执行也是一样的那么就可以使用switch
========================================
多分支if语句与switch语句相同点:
1、都能实现多分支选择
2、多分支if语句和switch语句都能实现不需要层层递进判断的多分支
多分支if语句与switch语句不同点:
1、嵌套语句语法复杂、有代码冗余、结构容易混乱,但是层层递进逐步判断只能使用嵌套
2、switch语句语法简洁,但是只能判断相等关系,不能判断区间。
3、除了层层递进和相等关系就选择多分支if语句
=======================
注意:
switch语句中每个case后面的常量值必须唯一,否则语法错误
case后面必须跟上break退出case,如果不写就会出语法错误
使用贯穿case时在最后一个case后面写上break退出否则语法错误
default语句是可以省略的,如果有那么就只能有一个。
while循环语句其实最适合做次数不确定的循环,
但是却知道什么条件才终止循环的场景。
-----------------------------------
while中表达式可以逆向判断,也就是说可以进行取反的判断,使用关系运算符中的(!=)不等于运算可以进行取反的操作。
---------------------
除非我们有意引入死循环,否则一定要在程序中避免死循环。
-----------------------
do...while循环是先执行一次循环体语句然后在判断循环条件是否为真。
使用场景:
当需要无论什么情况都要先执行语句然后在确定是否循环的情况下,使用do...while循环会更适合。
------------------------
语法:
do{
//循环体语句
}while(布尔表达式); <---这里一定不要忘记了分号结束语句
---------------------
do...while循环至少会执行一次。while循环可能一次都不执行
while是先判断再执行,do...while是先执行一次或多次再判断是否循环
--------------------
死循环产生的必要条件:就是循环终止条件永不为假。
Console.
1、Clear<---清屏
2、WindowHeight<---设置黑屏幕的高度
3、WindowWidth<---设置黑屏幕的宽度
4、BufferHeight<---设置屏幕缓冲区的高度
5、BufferWidth<---设置屏幕缓冲区的宽度
6、ForegroundColor<---设置前景色
7、BackgroundColor<---设置背景色
8、Beep<---播放指定频率和时长的声音
9、SetCursorPosition<---设置屏幕光标的位置的方法(函数)
10、CursorLeft<---光标距离黑屏左边的多少字符
11、CursorTop<---光标距离黑屏顶部的多少字符
回顾
while和do...while区别?
1,while是先判断后执行,有可能一次都不循环
2,do...while是先执行一次循环,然后在判断是否执行循环,所以无论如何都会执行至少一次。
3,while和do...while都适合于不知道循环次数的循环
----------------------------------------
for语句?
for循环语句也叫“迭代语句”
名词解释:迭代
迭代是重复反馈过程的活动,其目的通常是为了逼近所需目标或结果。每一次对过程的重复称为一次“迭代”,而每一次迭代得到的结果会作为下一次迭代的初始值。
重复执行一系列运算步骤,从前面的量依次求出后面的量的过程。此过程的每一次结果,都是由对前一次所得结果施行相同的运算步骤得到的。例如利用迭代法*求某一数学问题的解。
对计算机特定程序中需要反复执行的子程序*(一组指令),进行一次重复,即重复执行程序中的循环,直到满足某条件为止,亦称为迭代。
--------------------------------
for语句也称为:计数器循环语句
for语法:
for(表达式1;表达式2;表达式3)
{
循环语句
}
-----------------------
在同一个作用范围内不能声明相同变量名的变量,因为这样会产生二义性。编译器将不能识别。
------------------------------
for语句中三个表达式的作用:
表达式1作用是赋初值,仅在开始执行一次
表达式2每次都会执行,用于判断是否终止循环
表达式3作用是对表达式1的变量进行累加或递减,第一次不会执行,以后每次都会执行直到循环终止
----------------------------------
for可以有四种表现形式
1,for (i = 1; i <= max; i++) <---基本用法
2,int i=0;
for (; i <= max; i++) <---第二种
3, for (i = 1; i <= max; ){i++;} <---第三种
4,for (i = 1; ; i++) <---第四种
{
if (i <= max)
{ //语句}
else{break;}
}
-------------------------------
while、do...while、for相同点
1、都是循环语句,有固定的语法
2、都是有循环条件和循环体构成
3、循环的核心都是控制好循环的次数,次数又由三点决定:
a、初始部分
b、终止条件
c、迭代部分
------------------------------
while、do...while、for不同点
1、while、do...while适合用于循环次数未知的情况,for循环适合循环次数确定的情况
2、while、do...while初始部分通常在开始之前就完成了,for循环则是在语法表达式的表达式1部分完成
3、while、do...while循环的迭代是在循环体中完成,for循环是在语法结构的表达式3部分完成,for循环是将三要素同时写在for后面的小括号中
4、while和for是先判断在执行,如果条件一开始就不成立,则循环一次都不执行。do...while先执行在判断,无论条件是否成立最少执行一次。
-----------------------
注意:
for语句中三个表达式,如果为空也必须使用;号进行站位。如果缺失则语法错误