参考书籍:《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);}}
}