一.条件分支语句
1.if语句
(1)作用
让顺序执行的代码出现分支
if语句是第一个可以让我们的程序产生逻辑变化的语句
(2)if语句
作用:条件满足时,可以额外执行代码块中的代码
语法:if(bool类型)
{
满足条件要执行的代码
}
注意:
1.if语句不需要分号;但代码块中需要分号
2.if语句可以嵌套使用
if(true)
{
Console.WriteLine("1");
}
Console.WriteLine("2");
if(false)
{
Console.WriteLine("3");
}
Console.WriteLine("4");
if(true)
{
Console.WriteLine("5");
if(true)
{
Console.WriteLine("6");
}
if(false)
{
Console.WriteLine("7");
}
}
Console.WriteLine("8");
//输出结果应该为
/* 1
2
4
5
6
8 */
(3)if…else语句
作用:产生两条分支,满足条件做什么,不满足条件做什么
语法:
if(bool类型值)
{
执行条件满足的代码
}
else
{
执行条件不满足的代码
}
注意:
1.if…else语句不需要分号;但代码块中需要分号
2.if…else语句可以嵌套使用
if(true)
{
Console.WriteLine("1");
if(false)
{
Console.WriteLine("2");
}
else
{
Console.WriteLine("3");
}
}
else
{
Console.WriteLine("4");
}
//输出结果应该为
/* 1
3 */
(4)if…else if … else语句
作用:产生n条分支,多条道路选择,最先满足其中的一个条件,就做什么
语法:
if(bool类型值)
{
执行条件满足的代码
}
else if(bool类型值)
{
执行条件满足的代码
}
else
{
执行条件不满足的代码
}
注意:
1.同理不用写分号
2.可以嵌套
3.else可以省略
4.条件判断,从上到下执行,满足了第一个后,之后的都不执行了
internal class Program
{
static void Judge(int i)
{
if(i >= 10)
{
Console.WriteLine("大于等于10");
}
else if(i >= 5)
{
Console.WriteLine("大于等于5并且小于10");
}
else if(i >= 0)
{
Console.WriteLine("大于等于0并且小于5");
}
else
{
Console.WriteLine("小于0");
}
}
static void Main(string[] args)
{
Judge(11);
Judge(4);
Judge(-1);
}
}
2.switch语句
(1)作用
让顺序执行的代码产生分支
(2)基本语法
switch(变量)
{
case 常量:
满足条件执行的代码逻辑;
break;
case 常量:
满足条件执行的代码逻辑;
break;
default:
上面的所有case都不满足,就是执行default中的代码;
break;
}
case可以有很多个
注意:
常量!只能写一个值,不能写一个范围,也不能写条件运算符,逻辑运算符等等。
switch只能判断变量是否等于一个固定的值
int a = 3;
switch(a)
{
case 1:
Console.WriteLine("a的值等于1");
break;
case 2:
Console.WriteLine("a的值等于2");
break;
case 3:
Console.WriteLine("a的值等于3");
break;
default:
Console.WriteLine("什么条件都不满足");
break;
}
(3)default可省略
int a = 3;
switch(a)
{
case 1:
Console.WriteLine("a的值等于1");
break;
case 2:
Console.WriteLine("a的值等于2");
break;
case 3:
Console.WriteLine("a的值等于3");
break;
//default:
//Console.WriteLine("什么条件都不满足");
//break;
}
也可以运行,只不过当case的所有条件都不满足时,没有可运行的代码了
(4)可自定义常量
int a = 3;
//1.必须初始化;2.不可以修改
const int i = 3;
switch(a)
{
case i:
Console.WriteLine("a的值等于3");
break;
default:
Console.WriteLine("a不等于3");
break;
}
(5)贯穿
int i = 2;
switch(i)
{
case 1:
case 2:
case 3:
Console.WriteLine("i是个正数");
break;
case 0:
Console.WriteLine("i是0");
break;
case -1:
case -2:
case -3:
Console.WriteLine("i是个负数");
break;
}
当满足某些条件时,所执行的代码是一样的时候,可以使用贯穿。
二.循环语句
1.while循环语句
(1)作用
让顺序执行的代码,可以不停的执行某一代码块的内容
条件分支语句是让代码产生分支
循环语句是让代码可以被重复执行
(2)语法相关
while(bool类型值)
{
满足条件时,就执行while语句块中的内容
当代码逻辑执行完,会回到while循环前,重新进行条件判断
}
死循环:就是不停的执行循环语句中的逻辑“直到死为止”
while(true)
{
Console.WriteLine("********");
}
计算一个为0 的整型变量,让其不断的加1,一直循环加到10为止
int i = 0;
while(i < 10)
{
++i;
Console.WriteLine(i);
}
(3)嵌套使用
不仅仅可以嵌套if switch还可以嵌套while
int a = 0, b = 10 , c = 5;
while(a < c)
{
++a;
while(b > c)
{
--b;
Console.WriteLine("b="+ b);
}
Console.WriteLine("a="+ a);
}
Console.WriteLine("******************");
a = 0;
b = 10;
while(a < c)
{
++a;
if(b > c)
{
--b;
Console.WriteLine("b="+ b);
}
Console.WriteLine("a="+ a);
}
(4)流程控制关键词
作用:控制循环逻辑的关键词
break:跳出循环
int i = 0;
while(true)
{
Console.WriteLine(i);
i++;
if(i == 10)
{
break;
}
}
break和switch中的break一样,只不过在switch的break是跳出switch语句
int a = 1;
while(true)
{
switch(a)
{
default:
//这里的break跳出switch语句
break;
}
Console.WriteLine("*");
//这里的break跳出while语句
break;
}
continue:回到循环开始,继续执行
//打印1到20的奇数
int i = 0;
while(i < 20)
{
i++;
if(i%2 ==0)
{
continue;
}
Console.WriteLine(i);
}
2.do…while循环语句
(1)基本语法
while循环是先判断条件再进行循环
do while 是先执行一次,再判断条件需不需要循环
注意最后的while要加上分号
(2)实际使用
do
{
Console.WriteLine("执行一次");
}while(false);
这就是和while语句的区别,会执行一次,最后判断bool值,是否需要循环,所以do while语句至少会执行一次。
int i = 2;
do
{
Console.WriteLine(i);
i++;
}while(i < 5);
(3)嵌套使用
可以嵌套使用if switch while do…while
do
{
if (true)
{
Console.WriteLine("if语句代码块");
}
bool bo = true;
while (bo)
{
Console.WriteLine("while语句代码块");
bo = false;
}
int i = 1;
switch (i)
{
default:
Console.WriteLine("switch语句代码块");
break;
}
do
{
Console.WriteLine("do while语句代码块");
}while(false);
} while (false);
3.for循环语句
(1)基本语法
for(初始表达式;条件表达式;增量表达式)
{
循环代码逻辑;
}
初始表达式:一般声明一个临时变量,用来计数
条件表达式:声明进入循环的条件,一个bool类型
增量表达式:初始表达式中声明的临时变量的自增减运算
第一次循环才会调用初始表达式
每次进入循环都会判断条件表达式,满足即进入循环
执行完循环代码最后才会执行增量表达式,再进入下一次循环
for(int i = 1;i < 10;i++)
{
Console.WriteLine(i);
}
(2)支持嵌套
同样支持if 语句 switch语句 while语句和do while语句的嵌套
for(int i = 0;i < 5;i++)
{
for(int j = 0;j < 5;j++)
{
Console.WriteLine(i + "_" + j);
}
}
(3)特殊写法
死循环:
for( ; ; )
{
Console.WriteLine("for循环的死循环");
}
int i = 0;
for( ; i < 10; )
{
i++;
Console.WriteLine(i);
}
for(int i = 0; ; ++i)
{
Console.WriteLine(i);
if(i > 10)
{
break;
}
}
(4)对比while循环
for循环一般用于可以准确得到一个范围的数,即可以准确知道循环次数
for(int i = 1 ; i <=10 ; i++)
{
//准确可以知道循环次数10次
}
//当然while也可以但是这样写会比较麻烦
int j = 1;
while(j <= 10)
{
j++;
}
//所以当循环是这种已知循环次数,或者说是一个数字的范围是一般用for循环
//while循环可以用于不知道循环次数的






