当前位置: 首页 > news >正文

Chapter2:C#基本数据类型

参考书籍:《C#边做边学》;



2.C#基本数据类型
2.1 变量与常量
  • 变量是程序运行过程中用于存放数据的存储单元,变量的值的程序运行过程中可以改变;

  • 变量定义:

    • 定义变量时,必须给每个变量起名,通过变量名区分不同的变量;

    • 定义变量时,必须为每个变量指定数据类型,变量的类型决定了存储在变量中的数值的类型;

    • 变量定义语法格式:

      // C#变量定义语法格式:
      类型标识符 变量名1,变量名2,变量3,...;// 变量定义示例:
      int iNumber1,iNumber2;
      float fNumber1,fNumber2;
      string strName,strID;
      
    • 变量在使用前,先定义,后使用;

  • 变量赋值:

    • 变量是一个能保存某种类型的具体数据的内存单元,可以通过变量名来访问这个具体的内存单元;

    • 变量的赋值,是把数据保存到变量中的过程,变量赋值语法格式:

      // C#变量赋值语法格式:
      变量名 = 表达式;// 定义变量:
      int iNumber1, iNumber2;
      float fNumber1, fNumber2;// 赋值变量:
      iNumber1 = 100;
      iNumber2 = 200;
      fNumber1 = 1.23;
      fNumber2 = 4.56;
      
  • 变量初始化:

    • 在定义变量的同时对变量赋值,称为变量的初始化,变量初始化语法格式:

      // C#变量初始化语法格式:
      类型标识符 变量名 = 表达式;// 变量初始化:
      int iNumber1 = 100;
      float fNumber1 = 1.23;
      
  • 常量是指那些基于可读格式的固定数值,在程序的运行过程中其值不可改变的;

  • 声明常量的语法格式:

    // 声明常量的语法格式:
    const 类型标识符 变量名 = 表达式;// 声明常量示例:
    const double PI = 3.1415926;
    
  • 常量特点:

    • 程序中,常量只能被赋予初始值,赋予初始值后,常量的值在程序运行过程中不允许改变,即无法对一个常量赋值;

    • 定义常量时,表达式中的运算符对象只允许出现常量,不能有变量存在;

    • 定义常量的示例:

      // 正确定义常量与错误定义常量示例:
      int iNumber1 = 100;
      const int iNumber2 = 200;
      const int iNumber3 = iNumber2 + 100;	// 正确,iNumber2是一个常量;
      const int iNumber4 = iNumber1 + 100;	// 错误,iNumber1是一个变量;
      iNumber2 = 800;							// 错误,常量不允许修改;
      
2.2 基本数据类型转换与运算
  • 基本类型转换:把数据从一种类型转换为另一种类型,类型转换包括隐式转换和显式转换;

  • 隐式转换:隐式转换是 C # {\rm C\#} C#默认的以安全方式进行的转换,不会导致数据丢失,如:从小的整数类型转换为大的整数类型,从派生类转换为基类;

  • 显式转换:显式转换即强制类型转换,需要强制转换运算符,强制转换会造成数据丢失;

  • 隐式转换和显式转换示例:

    // CH02_01.cs
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;// 隐式转换和显式转换示例:
    namespace CH02_01
    {class CH02_01{static void Main(string[] args){// 1.隐式转换:int类型转换为double类型;int iNumber1 = 100;double dNumber1 = iNumber1;Console.WriteLine("隐式转换示例如下:");Console.WriteLine("转换前的值为:" + iNumber1);Console.WriteLine("转换后的值为:" + dNumber1 + "\n");// 2.显式转换// double类型转int类型:double dNumber2 = 3.14;int iNumber2 = (int)dNumber2;Console.WriteLine("显式转换double类型转int类型示例:");Console.WriteLine("(double to int)转换前的值为:" + dNumber2);Console.WriteLine("(double to int)转换后的值为:" + iNumber2 + "\n");// string类型转换为其他类型:string sData1 = "584";string sData2 = "5.84";int strToInt = int.Parse(sData1);double strToDouble = double.Parse(sData2);Console.WriteLine("显式转换string类型转其他类型示例:");Console.WriteLine("(string to int)转换前的值为:" + sData1);Console.WriteLine("(string to int)转换后的值为:" + strToInt);Console.WriteLine("(string to double)转换后的值为:" + sData2);Console.WriteLine("(string to double)转换后的值为:" + strToDouble + "\n");// 其他类型转换为string类型:int iNumber3 = 584;double dNumber3 = 5.84;string intToStr = iNumber3.ToString();string doubleToStr = dNumber3.ToString();Console.WriteLine("其他类型转换为string类型示例:");Console.WriteLine("(int to string)转换前的值为:" + iNumber3);Console.WriteLine("(int to string)转换后的值为:" + intToStr);Console.WriteLine("(double to string)转换前的值为:" + dNumber3);Console.WriteLine("(double to string)转换后的值为:" + doubleToStr);}}
    }
    
  • 数据的输入与输出

    • 控制台 ( C o n s o l e ) ({\rm Console}) (Console)的输入/输出主要通过命名空间 S y s t e m {\rm System} System中的 C o n s o l e {\rm Console} Console类来实现,提供了从控制台读写字符的基本功能;
    • 控制台输入主要通过 C o n s o l e {\rm Console} Console类的 R e a d ( ) {\rm Read()} Read()方法和 R e a d L i n e ( ) {\rm ReadLine()} ReadLine()方法实现,控制台输出主要通过 C o n s o l e {\rm Console} Console类的 W r i t e ( ) {\rm Write()} Write()方法和 W r i t e L i n e ( ) {\rm WriteLine()} WriteLine()方法实现;
    • R e a d L i n e ( ) {\rm ReadLine()} ReadLine()方法用来从控制台读取一行数据,一次读取一行字符的输入,且直到用户按下 E n t e r {\rm Enter} Enter键才会返回, R e a d L i n e ( ) {\rm ReadLine()} ReadLine()方法不接受回车键, R e a d L i n e ( ) {\rm ReadLine()} ReadLine()方法没有接收到任何输入,或接收了无效的输入,则 R e a d L i n e ( ) {\rm ReadLine()} ReadLine()方法返回 n u l l {\rm null} null
    • R e a d ( ) {\rm Read()} Read()方法用来从控制台的输入流读取下一个字符, R e a d ( ) {\rm Read()} Read()方法一次只能从输入流读取一个字符,且直到用户按下回车键才返回;
    • W r i t e L i n e ( ) {\rm WriteLine()} WriteLine()方法是将信息输出到控制台, W r i t e L i n e ( ) {\rm WriteLine()} WriteLine()方法在输出信息的后面添加一个回车换行符,用来产生一个新行;
    • W r i t e ( ) {\rm Write()} Write()方法是将信息输出到控制台, W r i t e ( ) {\rm Write()} Write()方法在输出信息到屏幕后不会产生一个新行;
2.3 项目实战1:求解圆面积和圆周长

项目需求: 提示用户输入圆的半径,计算圆的面积和圆的周长,并输出到控制台。

项目代码:

// CH02_02.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace CH02_02
{class CH02_02{static void Main(string[] args){// 声明变量和常量;double circleRadius, circleArea, circleCircumference;const double PI = 3.1415926;string strInput;// 接收输入数据,转换为浮点数;Console.WriteLine("请输入圆的半径:");strInput = Console.ReadLine();circleRadius = double.Parse(strInput);// 计算圆的面积和圆的周长;circleArea = PI * circleRadius * circleRadius;circleCircumference = 2 * PI * circleRadius;// 将计算结果输出到控制台;Console.Write("圆的面积为:{0}", circleArea + "\n");Console.WriteLine("圆的周长为:" + circleCircumference);}}
}
2.4 项目实战2:求解矩形的周长和面积

项目需求: 已知三个不同矩形的长宽,求解各矩形的周长和面积,并输出到控制台。

项目代码:

// CH02_03.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace CH02_03
{class CH02_03{static void Main(string[] args){// 定义不同类型的矩形的长和宽;int iRecLength = 10, iRecWidth = 20;double dblRecLength = 10.1, dblRecWidth = 20.2;float fRecLength = 10.11F, fRecWidth = 20.22F;int iRecArea, iRecCircumference;double dblRecArea, dblRecCircumference;float fRecArea, fRecCircumference;// 计算不同矩形的面积和周长;iRecArea = iRecLength * iRecWidth;iRecCircumference = 2 * (iRecLength + iRecWidth);Console.WriteLine("圆1的长为:{0},圆1的宽为:{1}", iRecLength, iRecWidth);Console.WriteLine("圆1的面积为:{0},圆1的周长为:{1}", iRecArea, iRecCircumference);Console.Write("\n");dblRecArea = dblRecLength * dblRecWidth;dblRecCircumference = 2 * (dblRecLength + dblRecWidth);Console.WriteLine("圆2的长为:{0},圆2的宽为:{1}", dblRecLength, dblRecWidth);Console.WriteLine("圆2的面积为:{0},圆2的周长为:{1}", dblRecArea, dblRecCircumference);Console.Write("\n");fRecArea = fRecLength * fRecWidth;fRecCircumference = 2 * (fRecLength + fRecWidth);Console.WriteLine("圆3的长为:{0},圆3的宽为:{1}", fRecLength, fRecWidth);Console.WriteLine("圆3的面积为:{0},圆3的周长为:{1}", fRecArea, fRecCircumference);Console.Write("\n");}}
}
2.5 项目实战3:简易计算器,计算和差积商

项目需求: 接收控制台输入,输入两个整数,计算两个整数的和、差、积、商,并输出到控制台。

项目代码:

// CH02_04.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace CH02_04
{class CH02_04{static void Main(string[] args){// 定义变量;int iNumber1, iNumber2;int iSum, iDifference, iProduct, iQuotient;string strInput1, strInput2;Console.WriteLine("请输入整数1:");strInput1 = Console.ReadLine();Console.WriteLine("请输入整数2(非零):");strInput2 = Console.ReadLine();// 输入转换为整数;iNumber1 = int.Parse(strInput1);iNumber2 = int.Parse(strInput2);// 计算两个整数的和、差、积、商;iSum = iNumber1 + iNumber2;iDifference = iNumber1 - iNumber2;iProduct = iNumber1 * iNumber2;iQuotient = iNumber1 / iNumber2;// 将计算结果输出到控制台;Console.WriteLine("整数的和:" + iSum);Console.WriteLine("整数的差:" + iDifference);Console.WriteLine("整数的积:" + iProduct);Console.WriteLine("整数的商:" + iQuotient);}}
}

相关文章:

Chapter2:C#基本数据类型

参考书籍:《C#边做边学》; 2.C#基本数据类型 2.1 变量与常量 变量是程序运行过程中用于存放数据的存储单元,变量的值的程序运行过程中可以改变; 变量定义: 定义变量时,必须给每个变量起名,通过…...

kafka服务端之控制器

文章目录 概述控制器的选举与故障恢复控制器的选举故障恢复 优雅关闭分区leader的选举 概述 在Kafka集群中会有一个或多个broker,其中有一个broker会被选举为控制器(Kafka Controler),它负责管理整个集群中所有分区和副本的状态。…...

Unity笔试常考

线程同步的几种方式 1.信号量pv操作 2.互斥加锁 3.条件变量 五层网络协议指的是哪五层 1.应用层 2.运输层 3.网络层 4.链路层 5.物理层 TCP和UDP区别 tcp 面向连接,保证发送顺序,速度慢,必须在线,三次握手,4次挥手…...

移植BOA服务器到GEC2440开发板

所需软件:boa-0.94.13.tar.tar(下载:http://www.boa.org/boa-0.94.13.tar.gz) 步骤: 设置好交叉编译工具链。 1、解压下载好的压缩包(tar xzvf boa-0.94.13.tar.tar),并进入解压后的目录(cd boa-0.94.13),再进行如下操作: 先进入到src目录(下面操作都是在该目录下进行…...

WPS如何接入DeepSeek(通过第三方工具)

WPS如何接入DeepSeek 一、下载并安装OfficeAI插件二、配置OfficeAI插件三、使用DeepSeek功能 本文介绍如何通过 WPS 的第三方工具调用 DeepSeek 大模型,实现自动化文本扩写、校对和翻译等功能。 一、下载并安装OfficeAI插件 1、访问OfficeAI插件下载地址&#xff…...

【安当产品应用案例100集】037-强化OpenVPN安全防线的卓越之选——安当ASP身份认证系统

在当前数字化时代,网络安全已成为企业发展的重要组成部分。对于使用OpenVPN的企业而言,确保远程访问的安全性尤为重要。安当ASP身份认证系统凭借其强大的功能和便捷的集成方式,为OpenVPN的二次登录认证提供了理想的解决方案,特别是…...

Windows Docker笔记-制作、加载镜像

引言 在文章《Windows Docker笔记-在容器中运行项目》中,已经在容器中运行了项目。而且在这个容器中,已经调试好了项目运行的环境。 使用docker,就是为了在项目发布到生产环境时,不用再去安装项目运行的环境,直接丢给…...

leetcode_26删除有序数组中的重复项

1. 题意 给定一个重复数组,删除其中的重复项目。 2. 题解 双指针 一个指针指向有序不重复数组的最后一个数,另外一个数遍历整个数组,若两个指针对应用的数不相同,有序数组的指针右移,将数填入。 代码一 class Sol…...

速递丨DeepSeek刚刚成立香港子公司,或因考虑香港上市和招募全球AI人才

图片来源:DeepSeek 根据彭博社和财联社报道,DeepSeek 2月5日在香港成立了两家公司——DeepSeek Limited 和 DeepSeek (HK) Limited。 香港中文大学莊太量教授表示,DeepSeek进军香港将推动该市的金融科技发展。如果DeepSeek考虑在香港上市&a…...

笔灵ai写作技术浅析(六):智能改写与续写

笔灵AI写作中的智能改写和续写技术是其核心功能之一,旨在帮助用户生成高质量、多样化的文本内容。 一、智能改写技术 1. 基本原理 智能改写的目标是在保持原文语义不变的前提下,对文本进行重新表述,生成语法正确、语义连贯且风格多样的新文本。其核心思想是通过语义理解和…...

【在线优化】【有源程序】基于遗传算法(GA)和粒子群优化(PSO)算法的MPPT控制策略

目录 一、背景 二、源程序及结果 2.1 simulink仿真程序 2.2 GA模块源程序 2.3 PSO模块源程序 三、程序运行结果 3.1 基于GA优化的MPPT 3.2 基于PSO优化的MPPT 一、背景 MPPT策略能够显著提高光伏、风电等发电效率,节省大量成本。该策略的经典算法是&#xf…...

使用 Three.js 实现热力渐变效果

大家好!我是 [数擎 AI],一位热爱探索新技术的前端开发者,在这里分享前端和 Web3D、AI 技术的干货与实战经验。如果你对技术有热情,欢迎关注我的文章,我们一起成长、进步! 开发领域:前端开发 | A…...

java-异常家族梳理(流程图)

前言: 使用流程图梳理异常,便于理解 梳理: Throwable ├── Error(严重错误,无需捕获) │ ├── OutOfMemoryError │ ├── StackOverflowError │ └── ... ├── Exception(可捕获处理) │ ├── RuntimeException(非检查异常/Unchecked) │ …...

开启蓝耘之旅:DeepSeek R1 模型在智算平台的起步教程

----------------------------------------------------------我的个人主页-------------------- 动动你的手指----------------------------------------点赞👍 收藏❤--------------------------------------------------------------- 引言 在深度学习的广袤领…...

[高等数学]不定积分的概念与性质

一、知识点 (一)原函数与不定积分的概念 定义1(原函数) 如果在区间 I I I 上,可导函数 F ( x ) F(x) F(x) 的导函数为 f ( x ) f(x) f(x),即对任一 x ∈ I x\in I x∈I,都有 F ′ ( x )…...

【算法】【高精度】acwing算法基础 793. 高精度乘法

题目 给定两个非负整数(不含前导 0) A 和 B,请你计算 AB 的值。 输入格式 共两行,第一行包含整数 A,第二行包含整数 B。 输出格式 共一行,包含 AB 的值。 数据范围 1≤A的长度≤100000, 0≤B≤10000 输入样…...

sqlite 查看表结构

在SQLite中,查看表结构通常有以下几种方法: 使用.schema命令 在SQLite的命令行界面中,你可以使用.schema命令加上表名来查看该表的结构。例如,如果你想查看名为your_table_name的表结构,你可以这样做: .s…...

测试中的第一性原理:回归本质的质量思维革命

在软件工程领域,测试活动常被惯性思维和经验主义所主导——测试用例库无限膨胀、自动化脚本维护成本居高不下、测试策略与业务目标渐行渐远。要突破这种困境,第一性原理(First Principles Thinking)提供了独特的解题视角&#xff…...

flink判断两个事件之间有没有超时(不使用CEP)

1.为啥不使用cep呢,cep的超时时间设置不好配置化,无法满足扩展要求 2.超时怎么界定。A事件发生后,过了N时间,还没有收到B事件,算超时。 代码如下: import com.alibaba.fastjson.JSONObject; import lombo…...

二级C语言题解:十进制转其他进制、非素数求和、重复数统计

目录 一、程序填空📝 --- 十进制转其他进制 题目📃 分析🧐 二、程序修改🛠️ --- 非素数求和 题目📃 分析🧐 三、程序设计💻 --- 重复数统计 题目📃 分析🧐 前言…...

从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路

进入2025年以来,尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断,但全球市场热度依然高涨,入局者持续增加。 以国内市场为例,天眼查专业版数据显示,截至5月底,我国现存在业、存续状态的机器人相关企…...

C# 类和继承(抽象类)

抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...

【决胜公务员考试】求职OMG——见面课测验1

2025最新版!!!6.8截至答题,大家注意呀! 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:( B ) A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...

第 86 场周赛:矩阵中的幻方、钥匙和房间、将数组拆分成斐波那契序列、猜猜这个单词

Q1、[中等] 矩阵中的幻方 1、题目描述 3 x 3 的幻方是一个填充有 从 1 到 9 的不同数字的 3 x 3 矩阵,其中每行,每列以及两条对角线上的各数之和都相等。 给定一个由整数组成的row x col 的 grid,其中有多少个 3 3 的 “幻方” 子矩阵&am…...

C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。

1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj,再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...

【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习

禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...

Mysql中select查询语句的执行过程

目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析(Parser) 2.4、执行sql 1. 预处理(Preprocessor) 2. 查询优化器(Optimizer) 3. 执行器…...

七、数据库的完整性

七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...

掌握 HTTP 请求:理解 cURL GET 语法

cURL 是一个强大的命令行工具,用于发送 HTTP 请求和与 Web 服务器交互。在 Web 开发和测试中,cURL 经常用于发送 GET 请求来获取服务器资源。本文将详细介绍 cURL GET 请求的语法和使用方法。 一、cURL 基本概念 cURL 是 "Client URL" 的缩写…...

Unity VR/MR开发-VR开发与传统3D开发的差异

视频讲解链接:【XR马斯维】VR/MR开发与传统3D开发的差异【UnityVR/MR开发教程--入门】_哔哩哔哩_bilibili...