- A+
所属分类:.NET技术
逻辑语句
条件分支语句
条件分支语句可以让顺序执行的代码逻辑产生分支,满足对应条件地执行对应代码逻辑。
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"); } //对于初学者而言,代码逻辑要整齐,错落有致,方便对比嵌套逻辑语句块的配对
if语句的小练习--分辨奇偶数字
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("请输入数字"); }
语句块的知识
{}括起来的逻辑语句是一个代码块,注意变量在代码块中的生命周期
//语句块体悟 //语句块引起的变量的生命周期 //语句块中声明的变量只能在当前的语句块中使用 //体会当下代码在编译器中的报错意义! 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);
Switch 语句
当判断条件过多时候,使用if elseif 来进行判断时,需要写多条elseif,显得冗长繁琐,为此体现出switch分支语句的优势--清晰明了
//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; }
switch使用练习:学生成绩的分档
//输入学生的考试成绩,如果 //成绩 >= 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("请输入数字"); }
循环语句
循环可以使满足循环执行条件的逻辑反复执行。注意不要随便写出死循环。
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); }
练习--找出100内所有素数打印
//找出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; }
doWhile循环
do……while语句与while循环差不多,只不过这个家伙太鲁莽,先斩后奏,不管如可,先执行代码块,再进行条件判断
//do while循环简单应用 string userName = ""; string passWord = ""; bool isShow = false; do { //这句代码 第一次 肯定不能执行 if (isShow) { Console.WriteLine("用户名或密码错误,请重新输入"); } //循环输入 Console.WriteLine("请输入用户名"); userName = Console.ReadLine(); Console.WriteLine("请输入密码"); passWord = Console.ReadLine(); isShow = true; } while (userName != "畅知" || passWord != "666");
for循环
for循环是最常使用的一种循环语句,
//for循环 for( int i = 10; i >= 0; i-- ) { Console.WriteLine(i); } //每个空位 可以按照规则进行书写 //注意:分号不可以省去,即便没有变量声明也不可以省! //第一个空位 声明变量 可以同时声明多个 //第二个空位 判断条件 返回值为bool //第三个空位 对变量的操作 for( int i = 0, j = 0; i < 10 && j < 0; ++i, j = j + 1) { } //for循环的特殊使用 // for循环可以写死循环 //for( ; ; ) //{ // Console.WriteLine("for循环的死循环"); //} int k = 0; for(; k < 10; ) { ++k;//k++, k += 1; } //for( k = 0; ; ++k ) //{ // if( k >= 10 ) // { // break; // } //}
for循环的经典练习:
一般都是找要执行逻辑块执行结果和循环条件变量之间的对应关系
//在控制台上输出如下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 <= 10; i++) { //打印空格的列 for (int k = 1; k <= 10 - i; k++) { Console.Write(" "); } //打印星号的列 for (int j = 1; j <= 2*i-1; j++) { Console.Write("*"); } Console.WriteLine(); } //在控制台上输出九九乘法表 for (int i = 1; i <= 9; i++) { //1 1 X 1 = 1 空行 //2 1 X 2 = 2 2 X 2 = 4 空行 //3 1 X 3 = 3 2 X 3 = 6 3 X 3 = 9 空行 for (int j = 1; j <= i; j++) { Console.Write("{0}X{1}={2} ", j, i, i * j); } Console.WriteLine(); } //求1~100之间所有偶数的和 int sum = 0; for (int i = 1; i <= 100; i++) { //判断是否是偶数 是否能整除2 if( i % 2 == 0 ) { sum += i; } } for (int i = 2; i <= 100; i += 2) { sum += i; } Console.WriteLine(sum);