• 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");
    }
    //对于初学者而言,代码逻辑要整齐,错落有致,方便对比嵌套逻辑语句块的配对

    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);
  • 相关阅读:
    WEB前端网页设计 HTML网页代码 基础参数(二)
    数字信号采集保存与处理通用过程
    HarmonyOS ArkTS语言,运行Hello World(一)
    k8s中 pod 或节点的资源利用率监控
    WPF/C#:程序关闭的三种模式
    [附源码]计算机毕业设计JAVA基于Java的快递驿站管理系统
    理解 Vue3 里的 defineProps 和 defineEmits
    X86架构和X64架构有什么区别?
    Java LeetCode算法编程及面试教程
    Python基础复习-面向对象的编程
  • 原文地址:https://www.cnblogs.com/TonyCode/p/17755122.html