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插件下载地址ÿ…...
【安当产品应用案例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策略能够显著提高光伏、风电等发电效率,节省大量成本。该策略的经典算法是…...
使用 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)提供了独特的解题视角ÿ…...
flink判断两个事件之间有没有超时(不使用CEP)
1.为啥不使用cep呢,cep的超时时间设置不好配置化,无法满足扩展要求 2.超时怎么界定。A事件发生后,过了N时间,还没有收到B事件,算超时。 代码如下: import com.alibaba.fastjson.JSONObject; import lombo…...
二级C语言题解:十进制转其他进制、非素数求和、重复数统计
目录 一、程序填空📝 --- 十进制转其他进制 题目📃 分析🧐 二、程序修改🛠️ --- 非素数求和 题目📃 分析🧐 三、程序设计💻 --- 重复数统计 题目📃 分析🧐 前言…...
利用最小二乘法找圆心和半径
#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …...
第19节 Node.js Express 框架
Express 是一个为Node.js设计的web开发框架,它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用,和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...
java_网络服务相关_gateway_nacos_feign区别联系
1. spring-cloud-starter-gateway 作用:作为微服务架构的网关,统一入口,处理所有外部请求。 核心能力: 路由转发(基于路径、服务名等)过滤器(鉴权、限流、日志、Header 处理)支持负…...
反向工程与模型迁移:打造未来商品详情API的可持续创新体系
在电商行业蓬勃发展的当下,商品详情API作为连接电商平台与开发者、商家及用户的关键纽带,其重要性日益凸显。传统商品详情API主要聚焦于商品基本信息(如名称、价格、库存等)的获取与展示,已难以满足市场对个性化、智能…...
8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂
蛋白质结合剂(如抗体、抑制肽)在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上,高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术,但这类方法普遍面临资源消耗巨大、研发周期冗长…...
UE5 学习系列(三)创建和移动物体
这篇博客是该系列的第三篇,是在之前两篇博客的基础上展开,主要介绍如何在操作界面中创建和拖动物体,这篇博客跟随的视频链接如下: B 站视频:s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...
【机器视觉】单目测距——运动结构恢复
ps:图是随便找的,为了凑个封面 前言 在前面对光流法进行进一步改进,希望将2D光流推广至3D场景流时,发现2D转3D过程中存在尺度歧义问题,需要补全摄像头拍摄图像中缺失的深度信息,否则解空间不收敛…...
论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)
笔记整理:刘治强,浙江大学硕士生,研究方向为知识图谱表示学习,大语言模型 论文链接:http://arxiv.org/abs/2407.16127 发表会议:ISWC 2024 1. 动机 传统的知识图谱补全(KGC)模型通过…...
JDK 17 新特性
#JDK 17 新特性 /**************** 文本块 *****************/ python/scala中早就支持,不稀奇 String json “”" { “name”: “Java”, “version”: 17 } “”"; /**************** Switch 语句 -> 表达式 *****************/ 挺好的ÿ…...
大数据学习(132)-HIve数据分析
🍋🍋大数据学习🍋🍋 🔥系列专栏: 👑哲学语录: 用力所能及,改变世界。 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言Ǵ…...
