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

c#,学习,笔记,逻辑,语句,分支,循环 · 浏览次数 : 0

小编点评

```c# // 定义变量 int num = 2; string userName = ""; string passWord = ""; // 判断是否是素数 bool isShow = false; for (int i = 2; i < num; i++) { if (num % i == 0) { isShow = true; break; } } // 循环输出10 * 10的空心星型方阵 for (int j = 0; j < 10; j++) { for (int i = 0; i < 10; i++) { if (j == 0 || j == 9) { Console.Write("*\"); } else { if (i == 0 || i == 9) { Console.Write("*\"); } else { Console.Write(" \"); } } } Console.WriteLine(); } // 循环输出九九乘法表 for (int i = 1; i < 9; i++) { for (int j = 1; j < i; j++) { Console.Write(i * j); } Console.WriteLine(); } // 求1~100之间所有偶数的和 int sum = 0; for (int i = 1; i < 100; i++) { if (i % 2 == 0) { sum += i; } } // 打印结果 Console.WriteLine(sum); // 归纳总结以上内容 return; ``` **排版** ``` * * * * * * * * * * * * 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 ```

正文

逻辑语句

条件分支语句

条件分支语句可以让顺序执行的代码逻辑产生分支,满足对应条件地执行对应代码逻辑。
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);

与C#学习笔记--逻辑语句(分支和循环)相似的内容:

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

逻辑语句 条件分支语句 条件分支语句可以让顺序执行的代码逻辑产生分支,满足对应条件地执行对应代码逻辑。 IF语句 //IF语句块 int a=5; if(a>0&&a<15)//注意结尾无分号 { Console.WriteLine("a在0到15之间"); } //if……else结构 if( f

C#学习笔记--面向对象三大特征

C#核心 面向对象--封装 用程序来抽象现实世界,(万物皆对象)来编程实现功能。 三大特性:封装、继承、多态。 类与对象 声明位置:namespace中 样式:class 类名{} 命名:帕斯卡命名法(首字母大写) 实例化对象:根据类来新建一个对象。Person p=new Person(); 成员

C#学习笔记--复杂数据类型、函数和结构体

C#语言的基础知识。在学习练习C#入门知识之后,对C#语言基础的知识进行学习练习! 涉及到语言的基础---一些复杂的数据类型,以及类和结构体。走出简单的小程序代码片段, 开始逐步走向抽象的数据世界。加油!

C#学习笔记---异常捕获和变量

异常捕获 使用异常捕获可以捕获出现异常的代码块,防止因为异常抛出造成的程序卡死的情况发生。 try{}catch{}finally{}结构 //异常捕获 try { string str=Console.ReadLine(); int i=int.Parse(str); Console.WriteL

C++算法之旅、09 力扣篇 | 常见面试笔试题(上)算法小白专用

算法学习笔记,记录容易忘记的知识点和难题。详解时空复杂度、50道常见面试笔试题,包括数组、单链表、栈、队列、字符串、哈希表、二叉树、递归、迭代、分治类型题目,均带思路与C++题解

C++算法之旅、08 基础篇 | 质数、约数

算法学习笔记,记录容易忘记的知识点和难题。试除法、分解质因数、筛质数、约数个数、约数之和、最大公约数

热更学习笔记10~11----lua调用C#中的List和Dictionary、拓展类中的方法

[10]Lua脚本调用C#中的List和Dictionary 调用还是在上文中使用的C#脚本中Student类: lua脚本: print(" 访问使用C#脚本中的List和Dictionary ") student.list:Add(2024) student.list:Add(5) studen

热更学习笔记--toLau中lua脚本对C#中枚举和数组的访问

[8]Lua脚本调用C#中的枚举学习 --调用枚举类型 print(" toLua中调用C#中枚举类型 ") PrimitiveType = UnityEngine.PrimitiveType local cubeObj = GameObject.CreatePrimitive(PrimitiveT

算法学习笔记(8.0): 网络流前置知识

网络流基础 网络流合集链接:网络流 网络 $G = (V, E)$ 实际上是一张有向图 对于图中每一条有向边 $(x, y) \in E$ 都有一个给定的容量 $c(x, y)$ 特别的,若 $(x,y) \notin E$ , 则 $c(x, y) = 0$ 图中还有两个指定的特殊结点,$S, T

算法学习笔记(15): Trie(字典树)

# Trie树 Trie(字典树)是一种用于实现字符串检索的多叉树。 Trie的每一个节点都可以通过 `c` 转移到下一层的一个节点。 > 我们可以看作可以通过某个字符转移到下一个字符串状态,直到转移到最终态为止。这是后话…… 我们以插入了字符串 `ab`,`aa`,`b` 三个字符串的Trie树为