华夏仁家 发表于 2023-10-10 19:03:08

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

逻辑语句

条件分支语句

条件分支语句可以让顺序执行的代码逻辑产生分支,满足对应条件地执行对应代码逻辑。
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循环的经典练习:
一般都是找要执行逻辑块执行结果和循环条件变量之间的对应关系
//在控制台上输出如下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
页: [1]
查看完整版本: C#学习笔记--逻辑语句(分支和循环)