翼度科技»论坛 编程开发 .net 查看内容

C#学习笔记--逻辑语句(分支和循环)

7

主题

7

帖子

21

积分

新手上路

Rank: 1

积分
21
逻辑语句

条件分支语句

条件分支语句可以让顺序执行的代码逻辑产生分支,满足对应条件地执行对应代码逻辑。
IF语句
  1. //IF语句块
  2. int a=5;
  3. if(a>0&&a<15)//注意结尾无分号
  4. {
  5.     Console.WriteLine("a在0到15之间");
  6. }
  7. //if……else结构
  8. if( false )
  9. {
  10.     Console.WriteLine("满足if条件 做什么");
  11.     if( true )
  12.     {
  13.         if (true)
  14.         {
  15.         }
  16.         else
  17.         {
  18.         }
  19.     }
  20.     else
  21.     {
  22.         if (true)
  23.         {
  24.         }
  25.         else
  26.         {
  27.         }
  28.     }
  29. }
  30. else
  31. {
  32.     Console.WriteLine("不满足if条件 做什么");
  33.     if (true)
  34.     {
  35.     }
  36.     else
  37.     {
  38.     }
  39. }
  40. //if……elseif 结构
  41. int a3 = 6;
  42. if (a3 >= 10)
  43. {
  44.     Console.WriteLine("a3大于等于10");
  45. }
  46. else if( a3 > 5 && a3 < 10 )
  47. {
  48.     Console.WriteLine("a3在6和9之间");
  49. }
  50. else if( a3 >= 0 && a3 <= 5 )
  51. {
  52.     Console.WriteLine("a3在0和5之间");
  53. }
  54. else
  55. {
  56.     Console.WriteLine("a小于0");
  57. }
  58. //对于初学者而言,代码逻辑要整齐,错落有致,方便对比嵌套逻辑语句块的配对
复制代码
Switch 语句

当判断条件过多时候,使用if elseif 来进行判断时,需要写多条elseif,显得冗长繁琐,为此体现出switch分支语句的优势--清晰明了
  1. try
  2. {
  3.     console.writeline("请输入一个整数");
  4.     int num = int.parse(console.readline());
  5.     //能被2整除的数 叫偶数
  6.     if (num % 2 == 0)
  7.     {
  8.         console.writeline("your input is even");
  9.     }
  10.     else
  11.     {
  12.         console.writeline("your input is odd");
  13.     }
  14. }
  15. catch
  16. {
  17.     console.writeline("请输入数字");
  18. }
复制代码
switch使用练习:学生成绩的分档
  1. //语句块体悟
  2. //语句块引起的变量的生命周期
  3. //语句块中声明的变量只能在当前的语句块中使用
  4. //体会当下代码在编译器中的报错意义!
  5. int a = 1;
  6. int b = 2;
  7. {
  8.     int b = 3;
  9.     Console.WriteLine(a);
  10.     Console.WriteLine(b);
  11. }
  12. Console.WriteLine(b);
  13. int a = 5;
  14. if (a > 3)
  15. {
  16.     int b = 0;
  17.     ++b;
  18.     b += a;
  19. }
  20. Console.WriteLine(b);
复制代码
循环语句

循环可以使满足循环执行条件的逻辑反复执行。注意不要随便写出死循环。
while循环
  1. //switch语句
  2. int a=2;
  3. switch(a)
  4. {
  5.    //这个条件一定是常量
  6.     case 1:
  7.         Console.WriteLine("a等于1");
  8.         break;//每个条件之间通过break隔开
  9.     case 2:
  10.         Console.WriteLine("a等于2");
  11.         break;
  12.     case 3:
  13.         Console.WriteLine("a等于3");
  14.         break;
  15.     default://可省略 默认选择条件
  16.         Console.WriteLine("什么条件都不满足,执行default中的内容");
  17.         break;
  18. }
  19. string str = "123";
  20. switch (str)
  21. {
  22.     case "123":
  23.         Console.WriteLine("等于123");
  24.         break;
  25.     case "234":
  26.         Console.WriteLine("等于234");
  27.         break;
  28. }
  29. //贯穿使用
  30. //当一个变量同时满足多个条件可以做多条件的“合并”判断
  31. //给变量对号找家--如果找到相关的可以接受的便会直接匹配,
  32. //否则会继续匹配下一条case条件
  33. string name="畅知";
  34. switch (name)
  35. {
  36.     //只要是符合三个条件之一就行
  37.     case "畅知":
  38.     case "TonyChang":
  39.     case "小明":
  40.             Console.WriteLine("是个帅哥!");
  41.             break;//break有阻断作用
  42.     case "小玉":
  43.     case "莉莉":
  44.             Console.WriteLine("是个美女!");
  45.             break;
  46.      default:
  47.         break;
  48. }
复制代码
练习--找出100内所有素数打印
  1. //输入学生的考试成绩,如果
  2. //成绩 >= 90:A
  3. //90 > 成绩 >= 80:B
  4. //80 > 成绩 >= 70:C
  5. //70 > 成绩 >= 60:D
  6. //成绩 < 60:E
  7. //(使用switch语法完成)
  8. //最后输出学生的考试等级
  9. try
  10. {
  11.     Console.WriteLine("请输入学生成绩");
  12.     int cj = int.Parse(Console.ReadLine());
  13.     // 取它的 十位数
  14.     // 100 / 10 = 10
  15.     // 99 / 10 = 9
  16.     // 84 / 10 = 8
  17.     // 74 / 10 = 7
  18.     // cj = cj / 10;
  19.     cj /= 10;
  20.     switch (cj)
  21.     {
  22.         case 10:
  23.         case 9:
  24.             Console.WriteLine("你的成绩是A");
  25.             break;
  26.         case 8:
  27.             Console.WriteLine("你的成绩是B");
  28.             break;
  29.         case 7:
  30.             Console.WriteLine("你的成绩是C");
  31.             break;
  32.         case 6:
  33.             Console.WriteLine("你的成绩是D");
  34.             break;
  35.         default:
  36.             Console.WriteLine("你的成绩是E");
  37.             break;
  38.     }
  39. }
  40. catch
  41. {
  42.     Console.WriteLine("请输入数字");
  43. }
复制代码
doWhile循环

do……while语句与while循环差不多,只不过这个家伙太鲁莽,先斩后奏,不管如可,先执行代码块,再进行条件判断
  1. //while循环
  2. int a=1;
  3. while(a<10)//循环条件
  4. {
  5.     ++a;
  6. }
  7. Console.WriteLine(i);
  8. //循环的嵌套使用
  9. int a1=1;
  10. int b=0;
  11. while (a1 < 10)
  12. {
  13.     ++a1;
  14.     while (b < 10)
  15.     {
  16.         ++b;
  17.     }
  18. }
  19. //break的使用
  20. //break可以是执行逻辑点跳出while语句块
  21. while (true)
  22. {
  23.     Console.WriteLine("break之前的代码");
  24.     break;
  25.     Console.WriteLine("break之后的代码");
  26. }
  27. Console.WriteLine("循环外的代码");
  28. //continue的使用
  29. //使执行逻辑点跳出当前的循环内容
  30. //直接进入下一次的循环判断执行
  31. //打印1到20之间的 奇数
  32. int index = 0;
  33. while(index < 20)
  34. {
  35.     ++index;
  36.     //什么样的数是奇数
  37.     //不能被2整除的数 ——> %
  38.     if (index % 2 == 0)
  39.     {
  40.         continue;//跳过偶数情况
  41.     }
  42.     Console.WriteLine(index);
  43. }
复制代码
for循环

for循环是最常使用的一种循环语句,
  1. //找出100内所有素数并打印。
  2. int num = 2;
  3. while( num < 100 )
  4. {
  5.     // 用想要判断是素数的数  从2开始 去取余 如果 中途就整除了 证明不是素数
  6.     // 如果 累加到和自己一样的数了 证明是素数
  7.     int i = 2;
  8.     while( i < num )
  9.     {
  10.         //判断是否整除
  11.         if( num % i == 0 )
  12.         {
  13.             break;
  14.         }
  15.         ++i;
  16.     }
  17.     if( i == num )
  18.     {
  19.         Console.WriteLine(num);
  20.     }
  21.     ++num;
  22. }
复制代码
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

举报 回复 使用道具