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

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);
        }
    }
}

http://www.kler.cn/a/540022.html

相关文章:

  • 征程 6 相比征程 5 对算子支持扩展的具体案例讲解
  • idea Ai工具通义灵码,Copilot我的使用方法以及比较
  • 【Java基础】为什么不支持多重继承?方法重载和方法重写之间区别、Exception 和 Error 区别?
  • c++ haru生成pdf输出饼图
  • Windows下AMD显卡在本地运行大语言模型(deepseek-r1)
  • Git(分布式版本控制系统)系统学习笔记【并利用腾讯云的CODING和Windows上的Git工具来实操】
  • Spring Boot 中的监视器是什么
  • Elasticsearch去分析目标服务器的日志,需要在目标服务器上面安装Elasticsearch 软件吗
  • Groovy语言的物联网
  • 项目部署问题
  • 【C/C++】每日温度 [ 栈的应用 ] 蓝桥杯/ACM备赛
  • SQL自学,mysql从入门到精通 --- 第 1 天,系统环境搭建,mysql部署
  • 小结:VLAN、STP、DHCP、ACL、NAT、PPP、边界路由等配置指令
  • 数据结构 day01
  • 老榕树的Java专题:Redis 从入门到实践
  • 代码笔记:ln创建链接
  • C++20导出模块及使用
  • Day.23
  • 字符设备驱动开发
  • 人工智能领域-CNN 卷积神经网络 性能调优
  • 使用Docker + Ollama在Ubuntu中部署deepseek
  • EXCEL数据解析与加密处理方法
  • Vue Router 导航方式详解:声明式导航与编程式导航
  • flink判断两个事件之间有没有超时(不使用CEP)
  • jmeter 性能测试Linux 常用的安装
  • 设计模式 ->模板方法模式(Template Method Pattern)