C#基础语法(2)

### 练习
一、变量和数据类型
- 1. 变量定义与赋值
```cs
using System;
namespace Name
{
    class Program
    {
        public static void Main(string[] args)
        {
            int age = 20;
            double height = 1.75;
            string name = "张三";
            bool isStudent = true;
            Console.WriteLine($"年龄: {age}, 姓名: {name}, 身高: {height}, 是否学生: {isStudent}");
        }
    }
}
```
- 2. 数据类型转换
```cs
 string numStr = "123";
            //将numStr转换为整数类型
            int num = int.Parse(numStr);
            int res = num + 456;
            Console.WriteLine(res.ToString());
```

二、运算符
1. 算术运算符
```cs
int a = 10;
int b = 3;
Console.WriteLine($"a+b={a+b},a-b={a-b},a*b={a*b},a/b={a/b},a%b={a%b}");
```

2. 比较和逻辑运算符
```cs
            int x = 20;
            int y = 30;
            bool res = x == y;
            bool res1 = x != y;
            bool res2 = x > y;
            bool res3 = x < y;
            bool res4 = x >= y;
            bool res5 = x <= y; 
            Console.WriteLine($"{res},{res1},{res2},{res3},{res4},{res5}");
``` 

3. 
```cs
    bool res = x > 10 && y < 40;
```

三、流程控制
1. 条件语句
```cs
        Console.WriteLine("请输入分数(0-100)");
        string input = Console.ReadLine();
        int score;
        //int.TryParse(input, out int score):int.TryParse 是一个尝试将字符串转换为整数的方法。它有两个参数:第一个是要转换的字符串 input,第二个是输出参数 out int score,用于存储转换后的整数值。
        if (!string.IsNullOrEmpty(input) && int.TryParse(input, out score) && score >= 0 && score <= 100)
        //  空的 string.IsNullOrEmpty() 调用:!string.IsNullOrEmpty() 应该包含一个参数,即 input。
        //  未赋值的局部变量 score:int.TryParse 应该使用 out score 而不是 out int score,因为 score 已经在前面声明过了。
        {
            int GradeLevel = score / 10;
            string Grade;
            switch (GradeLevel)
            {
                case 10:
                case 9:
                    Grade = "A";
                    break;
                case 8:
                    Grade = "B";
                    break;
                case 7:
                    Grade = "C";
                    break;
                case 6:
                    Grade = "D";
                    break;
                default:
                    Grade = "E";
                    break;                                        
            }
            Console.WriteLine($"成绩等级:{Grade}");
        }
        else
        {
            Console.WriteLine("输入字符无效");
        }
```

2. 循环语句
```cs
            for (int i = 1; i < 11; i++)
            {
               int res = i*i;
               Console.WriteLine(res);
            }
```

3. 累加和
```cs
            int i = 1;
            int sum = 0;
            while (i<=100)
            {
                sum += i;
                i++;
            }
             Console.WriteLine(sum);
```

四、方法
1. 方法定义与调用
```cs
    public class Program
    {
        public int Add(int n,int y)
        {
            int res = n + y;
            return res;
        }
        public static void Main(string[] args)
        {
            //   创建 Program 类的实例
            Program pro = new Program();
            // 通过实例调用非静态方法 Add
            int result = pro.Add(6, 1);
             Console.WriteLine(result);
        }
    }
```

2. 方法重载
```cs
    public class Calculator
    {
        // 重载方法:参数顺序为 int 和 double
        public double Multiply(int a, double b)
        {
            return a * b;
        }
        // 重载方法:参数顺序为 double 和 int
        public double Multiply(double a, int b)
        {
            return a * b;
        }
        public static void Main(string[] args)
        {
            // 根据命名class类
            Calculator calculator = new Calculator();

            double result1 = calculator.Multiply(5, 3.5);
            double result2 = calculator.Multiply(5.5, 3);

            Console.WriteLine("int 和 double 相乘结果: " + result1);
            Console.WriteLine("double 和 int 相乘结果: " + result2);
        }
    }
```

五、字符串操作
1. 字符串拼接
```cs
        string firstName = "张";
        string lastName = "三";
        Console.WriteLine($"{firstName}{lastName}");
```

2. 字符串方法
```cs
        string sentence = "Hello, World!";
        string res1 = sentence.ToUpper();
        string res2 = sentence.Replace("World","C#");
        Console.WriteLine(res1);
        Console.WriteLine(res2);
```

六、综合练习
1. 简单的计算器
```cs
    public static void Main(string[] args)
    {
        Console.WriteLine("请输入第一个数字:");
        double num1 = Convert.ToDouble(Console.ReadLine());
        Console.WriteLine("请输入第二个数字:");
        double num2 = Convert.ToDouble(Console.ReadLine());
        Console.WriteLine("请输入运算符:(+、-、*、/)");
        char op = Console.ReadLine()[0];

        double res = 0;
        switch (op)
        {
            case '+':
                res = num1 + num2;
                break;
            case '-':
                res = num1 - num2;
                break;
            case '*':
                res = num1 * num2;
                break;
            case '/':
                if (num2 != 0)
                {
                    res = num1 / num2;
                }
                else
                {
                    Console.WriteLine("错误: 除数不能为零!");
                    return;
                }
                break;
            default:
                Console.WriteLine("错误: 无效的运算符!");
                return;
        }
         Console.WriteLine("结果: {0} {1} {2} = {3}", num1, op, num2, res);
    }
```

2. 猜数字游戏
```cs
using System;
public class Calculator
{
    public static void Main(string[] args)
    {
        Random ran = new Random();
        int res = ran.Next(1, 3);
        Console.WriteLine("猜猜看,这个数字是多少?");
        while (true)
        {
            Console.WriteLine("请输入一个数字:");
            int userGuess;
            if (int.TryParse(Console.ReadLine(), out userGuess))
            {
                if (userGuess == res)
                {
                    Console.WriteLine("恭喜你,猜对了!程序结束。");
                    break; // 结束循环
                }
                else if (userGuess < res)
                {
                    Console.WriteLine("猜小了,请再试一次!");
                }
                else
                {
                    Console.WriteLine("猜大了,请再试一次!");
                }
            }
            else
            {
                Console.WriteLine("输入无效,请输入一个数字!");
            }
        }
    }
}
```

### 笔记
1. 命名空间和类定义
- 使用 `namespace` 关键字定义命名空间,以组织代码并避免命名冲突。
- 使用 `public class` 关键字定义一个公共类。

2. 主方法
- `static void Main(string[] args)` 是程序的入口点,其中 `args` 是一个字符串数组,用于接收命令行参数。

3. 控制台输出
- `System.Console.WriteLine` 方法用于向控制台输出文本信息。

4. 列表操作
- `List<string>` 是一个泛型列表,用于存储字符串类型的元素。
- `new List<string>()` 创建一个新的字符串列表实例。
- `Add` 方法用于向列表中添加单个元素。
- `AddRange` 方法用于向列表中添加一个字符串数组作为元素集合。

5. 循环遍历
- `foreach` 循环用于遍历列表中的每个元素。
- `var item` 在 `foreach` 循环中隐式类型化为当前元素的类型。

6. 变量声明
- `var` 关键字用于隐式类型化局部变量,编译器会根据赋值自动推断变量类型。

7. 数组创建
- `new string[] { "33", "99" }` 创建一个新的字符串数组,并初始化为包含指定字符串元素。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/pingmian/83530.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

连接关键点:使用 ES|QL 联接实现更丰富的可观测性洞察

作者&#xff1a;来自 Elastic Luca Wintergerst ES|QL 的 LOOKUP JOIN 现已进入技术预览阶段&#xff0c;它允许你在查询时对日志、指标和追踪进行丰富处理&#xff0c;无需在摄取时进行非规范化。动态添加部署、基础设施或业务上下文&#xff0c;减少存储占用&#xff0c;加速…

Unity 中实现可翻页的 PageView

之前已经实现过&#xff1a; Unity 中实现可复用的 ListView-CSDN博客文章浏览阅读5.6k次&#xff0c;点赞2次&#xff0c;收藏27次。源码已放入我的 github&#xff0c;地址&#xff1a;Unity-ListView前言实现一个列表组件&#xff0c;表现方面最核心的部分就是重写布局&…

[Java 基础]创建人类这个类小练习

请根据如下的描述完成一个小练习&#xff1a; 定义一个名为 Human 的 Java 类在该类中定义至少三个描述人类特征的实例变量&#xff08;例如&#xff1a;姓名、年龄、身高&#xff09;为 Human 类定义一个构造方法&#xff0c;该构造方法能够接收所有实例变量作为参数&#xf…

LeetCode 热题 100 739. 每日温度

LeetCode 热题 100 | 739. 每日温度 大家好&#xff0c;今天我们来解决一道经典的算法题——每日温度。这道题在 LeetCode 上被标记为中等难度&#xff0c;要求我们找到一个数组&#xff0c;其中每个元素表示从当前天开始&#xff0c;下一个更高温度出现的天数。如果之后没有更…

《仿盒马》app开发技术分享-- 商品搜索页(顶部搜索bar热门搜索)(端云一体)

开发准备 随着开发功能的逐渐深入&#xff0c;我们的应用逐渐趋于完善&#xff0c;现在我们需要继续在首页给没有使用按钮以及组件添加对应的功能&#xff0c;这一节我们要实现的功能是商品搜索页面&#xff0c;这个页面我们从上到下开始实现功能&#xff0c;首先就是一个搜索…

spring-ai入门

spring-ai入门 1、前语 hi&#xff0c;我是阿昌&#xff0c;今天记录针对目前当下ai火热的背景下&#xff0c;ai的主流使用语言为python&#xff0c;但市面上很大部分的项目是java开发的的背景下&#xff0c;那java就不能涉及ai领域的开发了嘛&#xff1f;有句调侃的话说的好…

复习——C++

1、scanf和scanf_s区别 2、取地址&#xff0c;输出 char ba; char* p&b; cout<<*p; cout<<p; p(char*)"abc"; cout<<*p; cout<<p; cout<<(void*)p; 取地址&#xff0c;把b的地址给p 输出*p&#xff0c;是输出p的空间内的值…

《TCP/IP 详解 卷1:协议》第5章:Internet协议

IPv4和IPv6头部 IP是TCP/IP协议族中的核心协议。所有TCP、UDP、ICMP和IGMP 数据都通过IP数据报传输。IP提供了一种尽力而为、无连接的数据报交付服务。 IP头部字段 IPv4 头部通常为 20 字节&#xff08;无选项时&#xff09;&#xff0c;而 IPv6 头部固定为 40 字节。IPv6 不…

树莓派系列教程第九弹:Cpolar内网穿透搭建NAS

在数字时代&#xff0c;数据存储与共享的需求无处不在。无论是家庭用户想要搭建一个便捷的私人云盘&#xff0c;还是小型团队需要一个高效的数据共享中心&#xff0c;NAS&#xff08;网络附加存储&#xff09;无疑是最佳选择之一。然而&#xff0c;传统的NAS搭建往往需要复杂的…

React 组件异常捕获机制详解

1. 错误边界&#xff08;Error Boundaries&#xff09;基础 在React应用开发中&#xff0c;组件异常的有效捕获对于保证应用稳定性至关重要。React提供了一种称为"错误边界"的机制&#xff0c;专门用于捕获和处理组件树中的JavaScript错误。 错误边界是React的一种…

python3GUI--车牌、车牌颜色识别可视化系统 By:PyQt5(详细介绍)

文章目录 一&#xff0e;前言二&#xff0e;效果预览1.实时识别2.ROI3.数据导出 三.相关技术与实现1.目标识别与检测2.可视化展示3.如何设置推流环境4.如何实现的车牌和颜色识别5.项目结构 四&#xff0e;总结 本系统支持黄牌、蓝牌、绿牌、黑牌、白牌&#xff0c;支持双层车牌…

python做题日记(12)

第二十七题 LeetCode第27题要求原地移除数组中所有等于给定值val的元素&#xff0c;并返回移除后数组的新长度。不能使用额外的数组空间&#xff0c;必须在原数组上修改&#xff0c;且元素的顺序可以改变。对于这道题的解法在之前的题目中也使用过&#xff0c;可以使用双指针法…

2025年计算机科学与网络安全国际会议(CSNS 2025)

第二届计算机科学与网络安全国际会议&#xff08;CSNS 2025&#xff09;将在兰州举办&#xff0c;这是一场聚焦于计算机科学领域最新进展及网络安全前沿技术的国际性学术交流盛会。该会议旨在为来自全球各地的研究学者、工程师以及相关行业专业人士提供一个高水平的交流平台&am…

知识拓展卡————————关于Access、Trunk、Hybrid端口

目录 什么是Trunk List、VLAN ID、PVID&#xff1a; VLAN ID&#xff08;Virtual Local Area Network Identifier&#xff09;&#xff1a; Trunk List&#xff08;Trunk列表&#xff09;&#xff1a; PVID&#xff08;Prot VLAN ID&#xff09;: 关于Native VLAN &#x…

Cursor 工具项目构建指南: Web Vue-Element UI 环境下的 Prompt Rules 约束(new Vue 方式)

简简单单 Online zuozuo: 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo :本心、输入输出、结果 简简单单 Online zuozuo : 文章目录 Cursor 工具项目构建指南: Web Vue-Element UI 环境下的 Prompt Rules 约束前言项目简…

hadoop集群启动没有datanode解决

问题 多次初始化会出现此问题&#xff0c;根本原因是ClusterID不一样 解决 首先停止集群 stop-all.sh然后到/hadoop/logs中找到hadoop-root-datanode-hadoopxxx.log文件 cat一下这个文件&#xff0c;找到ClusterID 复制 然后到 可能文件会不太一样&#xff0c;可能直接是…

ann算法的种类有哪些,之间的区别,各自的适用场景

ANN&#xff08;近似最近邻&#xff09;算法主要分为三类技术路线&#xff1a;基于树的方法、哈希方法和图方法&#xff0c;它们在原理、性能及适用场景上有显著差异&#xff1a; 1. 基于树的方法 核心原理&#xff1a;递归划分数据空间形成树状结构&#xff08;如二叉树或多叉…

云服务器部署Gin+gorm 项目 demo

更多个人笔记见&#xff1a; &#xff08;注意点击“继续”&#xff0c;而不是“发现新项目”&#xff09; github个人笔记仓库 https://github.com/ZHLOVEYY/IT_note gitee 个人笔记仓库 https://gitee.com/harryhack/it_note 个人学习&#xff0c;学习过程中还会不断补充&…

【学习笔记】TCP 与 UDP

TCP&#xff08;Transmission Control Protocol&#xff09;与UDP&#xff08;User Datagram Protocol&#xff09;是 网络通讯 中最基础也最常用的两种 传输层 协议。 文章目录 1. 简介2. OSI 与 TCP/IP 模型中的定位3. 协议原理与关键机制3.1 UDP3.2 TCP 5. 实践&#xff1a;…

HikariCP 可观测性最佳实践

HikariCP 介绍 HikariCP 是一个高性能、轻量级的 JDBC 连接池&#xff0c;由 Brett Wooldridge 开发。它以“光”命名&#xff0c;象征快速高效。它支持多种数据库&#xff0c;配置简单&#xff0c;通过字节码优化和智能管理&#xff0c;实现低延迟和高并发处理。它还具备自动…