流程控制语句知识点和思考练习,及书里发现的错误
知识点
条件语句:if...else,switch...case
循环语句:while,do,for,foreach
跳转语句:break,continue,goto,return,throw
思考练习
using System; namespace FlowControl { public class FlowControlClass { static double CalZC(int r) { double zc = 2 * Math.PI * r; return zc; } static void Main() { //条件语句 if...else int b; // if(5<1) // //int b=10;错误语句,嵌入的语句不能是声明或标记语句 // b=10; // else // b=7; if (6 > 7) { b = 10; } else//视情况可以不加大括号,下面这种简单情况就可以不用加大括号 if (5 < 1) b = 11; else b = 12; Console.WriteLine(b); Console.ReadLine(); //循环语句while continue break int i = 1, sum = 0; while (i <= 10) { sum += i; i++; } Console.WriteLine(sum); Console.ReadLine(); i = 1; sum = 0; while (1 == 1) { sum += i; if (++i > 10) break; } Console.WriteLine(sum); Console.ReadLine(); i = 1; int oddnumsum = 0; while (i <= 100) { if (i % 2 == 0) { i++; continue; //跳过当前循环开始下一循环 } oddnumsum += i; i++; } Console.WriteLine(oddnumsum); Console.ReadLine(); //do...while循环 不管条件是否正确,至少运行一遍 i = 1; sum = 0; do { sum += i; i++; } while (i <= 10);//此处的封号一定要有 Console.WriteLine(sum); Console.ReadLine(); //for循环 for (i = 1, sum = 0; i <= 100; i++)//其实这样写并不合适,应该是局部变量一个新的变量,并且不能与上下文其他变量重名 { if (i % 2 == 0) { continue; } sum += i; } Console.WriteLine(sum); Console.ReadLine(); //foreach循环 用于遍历整个数组或集合,但不会改变数组或集合中的内容 char[] strArr = new char[] { 'a', 'c', 'e', 'f', 'h', 'j' }; foreach (char c in strArr) { Console.WriteLine(c); } Console.ReadLine(); //switch...case和跳转语句goto return throw如下 Console.Write("请输入数字"); int x = int.Parse(Console.ReadLine());//int.Parse()方法为将字符串转换为整型 switch (x) { case 1: sum += 10; break;//必须为每一个case块指定一个跳转语句(break或goto) case 5: sum = 50; break; case 7: sum = 70; break; case 17: sum = 60; goto case 1; default: goto case 5; } Console.WriteLine(sum); Console.ReadLine(); int p = 3, q = 4; int val = 0; string[,] strArr1 = new string[p, q]; for (int j = 0; j < p; j++)//j作为局部变量,不能与其他非局部变量重名 { for (int k = 0; k < q; k++) { val++; strArr1[j, k] = val.ToString();//ToString()为数字转换为字符串 } } Console.Write("Please input number:"); string value = Console.ReadLine(); for (int j = 0; j < p; j++) { for (int k = 0; k < q; k++) { //if(value==strArr1[j,k]) goto L1;//和下句意思应该相同 if (strArr1[j, k].Equals(value)) goto L1; } } Console.WriteLine("没有发现"); goto L2; L1: Console.WriteLine("发现了!"); L2: Console.WriteLine("查找结束"); Console.ReadLine(); int radius = 10; Console.WriteLine("周长为{0}", CalZC(radius));//静态方法才可直接引用,而不用引用对象 Console.ReadLine(); // } } }
书内错误
1、P38页,中间示例的第九行if 语句内应为==而不是=
2、P38页,中间示例的第十行,应加 i++; 这条语句
3、P40页,第三行的c应该是val