逻辑语句
条件分支语句
条件分支语句可以让顺序执行的代码逻辑产生分支,满足对应条件地执行对应代码逻辑。
IF语句- //IF语句块
- int a=5;
- if(a>0&&a<15)//注意结尾无分号
- {
- Console.WriteLine("a在0到15之间");
- }
- //if……else结构
- if( false )
- {
- Console.WriteLine("满足if条件 做什么");
- if( true )
- {
- if (true)
- {
- }
- else
- {
- }
- }
- else
- {
- if (true)
- {
- }
- else
- {
- }
- }
- }
- else
- {
- Console.WriteLine("不满足if条件 做什么");
- if (true)
- {
- }
- else
- {
- }
- }
- //if……elseif 结构
- int a3 = 6;
- if (a3 >= 10)
- {
- Console.WriteLine("a3大于等于10");
- }
- else if( a3 > 5 && a3 < 10 )
- {
- Console.WriteLine("a3在6和9之间");
- }
- else if( a3 >= 0 && a3 <= 5 )
- {
- Console.WriteLine("a3在0和5之间");
- }
- else
- {
- Console.WriteLine("a小于0");
- }
- //对于初学者而言,代码逻辑要整齐,错落有致,方便对比嵌套逻辑语句块的配对
复制代码 Switch 语句
当判断条件过多时候,使用if elseif 来进行判断时,需要写多条elseif,显得冗长繁琐,为此体现出switch分支语句的优势--清晰明了- try
- {
- console.writeline("请输入一个整数");
- int num = int.parse(console.readline());
- //能被2整除的数 叫偶数
- if (num % 2 == 0)
- {
- console.writeline("your input is even");
- }
- else
- {
- console.writeline("your input is odd");
- }
- }
- catch
- {
- console.writeline("请输入数字");
- }
复制代码 switch使用练习:学生成绩的分档- //语句块体悟
- //语句块引起的变量的生命周期
- //语句块中声明的变量只能在当前的语句块中使用
- //体会当下代码在编译器中的报错意义!
- int a = 1;
- int b = 2;
- {
- int b = 3;
- Console.WriteLine(a);
- Console.WriteLine(b);
- }
- Console.WriteLine(b);
- int a = 5;
- if (a > 3)
- {
- int b = 0;
- ++b;
- b += a;
- }
- Console.WriteLine(b);
复制代码 循环语句
循环可以使满足循环执行条件的逻辑反复执行。注意不要随便写出死循环。
while循环
- //switch语句
- int a=2;
- switch(a)
- {
- //这个条件一定是常量
- case 1:
- Console.WriteLine("a等于1");
- break;//每个条件之间通过break隔开
- case 2:
- Console.WriteLine("a等于2");
- break;
- case 3:
- Console.WriteLine("a等于3");
- break;
- default://可省略 默认选择条件
- Console.WriteLine("什么条件都不满足,执行default中的内容");
- break;
- }
- string str = "123";
- switch (str)
- {
- case "123":
- Console.WriteLine("等于123");
- break;
- case "234":
- Console.WriteLine("等于234");
- break;
- }
- //贯穿使用
- //当一个变量同时满足多个条件可以做多条件的“合并”判断
- //给变量对号找家--如果找到相关的可以接受的便会直接匹配,
- //否则会继续匹配下一条case条件
- string name="畅知";
- switch (name)
- {
- //只要是符合三个条件之一就行
- case "畅知":
- case "TonyChang":
- case "小明":
- Console.WriteLine("是个帅哥!");
- break;//break有阻断作用
- case "小玉":
- case "莉莉":
- Console.WriteLine("是个美女!");
- break;
- default:
- break;
- }
复制代码 练习--找出100内所有素数打印- //输入学生的考试成绩,如果
- //成绩 >= 90:A
- //90 > 成绩 >= 80:B
- //80 > 成绩 >= 70:C
- //70 > 成绩 >= 60:D
- //成绩 < 60:E
- //(使用switch语法完成)
- //最后输出学生的考试等级
- try
- {
- Console.WriteLine("请输入学生成绩");
- int cj = int.Parse(Console.ReadLine());
- // 取它的 十位数
- // 100 / 10 = 10
- // 99 / 10 = 9
- // 84 / 10 = 8
- // 74 / 10 = 7
- // cj = cj / 10;
- cj /= 10;
- switch (cj)
- {
- case 10:
- 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;
- }
- }
- catch
- {
- Console.WriteLine("请输入数字");
- }
复制代码 doWhile循环
do……while语句与while循环差不多,只不过这个家伙太鲁莽,先斩后奏,不管如可,先执行代码块,再进行条件判断- //while循环
- int a=1;
- while(a<10)//循环条件
- {
- ++a;
- }
- Console.WriteLine(i);
- //循环的嵌套使用
- int a1=1;
- int b=0;
- while (a1 < 10)
- {
- ++a1;
- while (b < 10)
- {
- ++b;
- }
- }
- //break的使用
- //break可以是执行逻辑点跳出while语句块
- while (true)
- {
- Console.WriteLine("break之前的代码");
- break;
- Console.WriteLine("break之后的代码");
- }
- Console.WriteLine("循环外的代码");
- //continue的使用
- //使执行逻辑点跳出当前的循环内容
- //直接进入下一次的循环判断执行
- //打印1到20之间的 奇数
- int index = 0;
- while(index < 20)
- {
- ++index;
- //什么样的数是奇数
- //不能被2整除的数 ——> %
- if (index % 2 == 0)
- {
- continue;//跳过偶数情况
- }
- Console.WriteLine(index);
- }
复制代码 for循环
for循环是最常使用的一种循环语句,- //找出100内所有素数并打印。
- int num = 2;
- while( num < 100 )
- {
- // 用想要判断是素数的数 从2开始 去取余 如果 中途就整除了 证明不是素数
- // 如果 累加到和自己一样的数了 证明是素数
- int i = 2;
- while( i < num )
- {
- //判断是否整除
- if( num % i == 0 )
- {
- break;
- }
- ++i;
- }
- if( i == num )
- {
- Console.WriteLine(num);
- }
- ++num;
- }
复制代码 for循环的经典练习:
一般都是找要执行逻辑块执行结果和循环条件变量之间的对应关系
[code]//在控制台上输出如下10 * 10的空心星型方阵//**********//* *//* *//* *//* *//* *//* *//* *//* *//**********//行for (int j = 0; j < 10; j++){ //列 for (int i = 0; i < 10; i++) { //列 如果是 第1行和最后1行 那么 内层列循环 都打印星号 // 按照 **********的规则打印 if (j == 0 || j == 9) { Console.Write("*"); } //否则 就是 按照* *的规则打印 else { if (i == 0 || i == 9) { Console.Write("*"); } else { Console.Write(" "); } } } Console.WriteLine();}//在控制台上输出如下10行的三角形方阵// * 1 1 -> 2i - 1 9 10 - i// *** 2 3 -> 2i - 1 8 10 - i// ***** 3 5 7 10 - i// ******* 4 7 6 10 - i// ********* 5 9 5// *********** 6 11 4// ************* 7 13 3// *************** 8 15 2// ***************** 9 17 1//******************* 10 19 0 10 - i//行for (int i = 1; i |