-
- 素材大小:
- 1.03 MB
- 素材授權(quán):
- 免費下載
- 素材格式:
- .ppt
- 素材上傳:
- ppt
- 上傳時間:
- 2016-08-11
- 素材編號:
- 67616
- 素材類別:
- 數(shù)學(xué)課件PPT
-
素材預(yù)覽
這是一個關(guān)于2第二章-數(shù)據(jù)類型、變量和常量學(xué)習(xí)課件PPT模板,這節(jié)課主要是了解引用類型,值類型與引用類型之間的區(qū)別示例,聲明變量(變量的定義),變量的命名規(guī)則,變量的賦值,變量的初始化,變量的作用域等等介紹。變量的賦值: 就是將數(shù)據(jù)保存到變量所代表的存儲單元中的過程。在程序中,可以給一個變量多次賦值。變量的當(dāng)值等于最近一次給變量所賦的值。更多內(nèi)容,歡迎點擊下載2第二章-數(shù)據(jù)類型、變量和常量學(xué)習(xí)課件PPT模板哦。
2第二章-數(shù)據(jù)類型、變量和常量學(xué)習(xí)課件PPT模板是由紅軟PPT免費下載網(wǎng)推薦的一款數(shù)學(xué)課件PPT類型的PowerPoint.
2.1.2 值類型
值類型(value type)
值類型的變量在堆棧(Stack)中直接包含其數(shù)據(jù),每個變量都有自己的數(shù)據(jù)副本(除 ref 和 out 參數(shù)變量外)
變量之間的操作獨立(互不影響)。
C# 的值類型分為:
簡單類型(simple type)
枚舉類型(enum type)
結(jié)構(gòu)類型(struct type)
null 的類型(nullable type)
2.1數(shù)據(jù)類型
2.1.1類型系統(tǒng)
通用類型系統(tǒng)(Common Type System,CTS)定義了如何在運行庫中聲明、使用和管理類型。
以保證遵循公共語言規(guī)范(Common Language Specification,CLS)的語言(C#、VB.NET)編寫程序之間的互操作。
CTS是運行庫(CLR)支持跨語言集成的一個重要組成部分。
2.1.3 引用類型
引用類型(reference type):
引用類型的變量在堆棧(Stack)中存儲對數(shù)據(jù)(對象)的引用(地址),數(shù)據(jù)(對象)存儲在托管運行環(huán)境管理的堆(Heap)中。
對于引用類型,兩個變量可能引用同一個對象,因此對一個變量的操作可能影響另一個變量所引用的對象
C# 的引用類型分為:
類類型(class type)、接口類型(interface type)、數(shù)組類型(array type) 和委托類型(delegate type)
【例2.1】值類型與引用類型之間的區(qū)別示例
變量val1、val2為值類型;ref1、ref2為引用類型。比較其運行結(jié)果和內(nèi)存分配示意圖
2.2 變量
變量是程序運行過程中用于存放數(shù)據(jù)的存儲單元。
變量的值在程序的運行過程中可以改變。
2.2.1 聲明變量(變量的定義);
在定義變量時,首先必須給每一個變量起名,稱為變量名,變量名代表存儲地址。
變量的類型決定了存儲在變量中的數(shù)值的類型。
變量定義格式:
類型標識符 變量名1,變量名2,……
2.2.1 聲明變量(變量的定義)
例:
double fsum;
string strName;
char b;
int x, y , z;
注意:C#規(guī)定,任何變量在使用前,必須先定義, 后使用。
2.2.2 變量的命名規(guī)則
變量名的第一個字符必須是字母、下劃線(“_”)或@,
其后的字符可以是字母、下劃線或數(shù)字。
注意,C#定義的關(guān)鍵字不能用作變量名。但可以定義@加關(guān)鍵字的變量名
myVar、_strName、obj1、@namespace為正確的變量名
99var、It'sOK、namespace為錯誤的變量名
.NET Framework一般遵循兩種命名約定:PascalCase和camelCase
2.2.3 變量的賦值
在獲取變量的值之前,變量必須已明確賦值(definitely assigned)
C#變量被訪問之前必須被初始化;否則編譯時會報錯。因此,不可能訪問一個未初始化變量
2.2.3 變量的賦值
變量的賦值: 就是將數(shù)據(jù)保存到變量所代表的存儲單元中的過程。
格式:
變量名=表達式;
意義:計算表達式的值,然后將這個值賦予變量。
例:
double nAverage;
int nAgeSum;
nAgeSum=210; //給nAgeSum變量賦予數(shù)值210
2.2.3 變量的賦值
在程序中,可以給一個變量多次賦值。變量的當(dāng)值等于最近一次給變量所賦的值。
如:
nAgeSum=68; //這時nAgeSum等于68
nAgeSum=36+24; //這時nAgeSum等于60
nAgeSum= nAgeSum+40; //nAgeSum等于100
2.2.3 變量的賦值
在對變量進行賦值時,表達式的值的類型必須同變量的類型一致。
string sName;
int nScore;
sName="Jack"; //正確
sName="Tom"; //正確
nScore=98;
sName=5; //錯誤, 不能將整數(shù)賦予字符串對象
nScore=“Hello”; //錯誤, 不能字符串賦予整型變量
2.2.3 變量的初始化
在定義變量的同時,可以對變量賦值,稱為變量的初始化。
對變量進行初始化的格式如下:
類型標識符 變量名=表達式;
例:
string str=“This is a book”;
2.2.3 變量的分類
C#中,變量分為七種類型:
靜態(tài)變量(static variables)
非靜態(tài)變量(也即實例變量instance variables)
局部變量(local variables)
數(shù)組元素(array elements)
值參數(shù)(value parameters)
引用參數(shù)(reference parameters)
輸出參數(shù)(output parameters)
【例2.2】變量的聲明和賦值示例
2.2.4 變量的作用域
1. 局部變量的作用域
局部變量存在于表示聲明該變量的塊語句或方法結(jié)束的封閉花括號之前的作用域內(nèi)
在for、while或類似語句中聲明的局部變量存在于該循環(huán)體內(nèi)
2. 局部變量的作用域沖突
同名的局部變量不能在同一作用域內(nèi)聲明兩次
3. 字段和局部變量的作用域沖突
在類的方法中可以定義與已定義的字段名相同的局部變量,而不產(chǎn)生沖突
【例2.3】變量的作用域示例(2-3newVariable.cs)
2.3 常量
在C#中,常量在程序的運行過程中其值是不能改變的,例如,數(shù)字100就是一個常量,這樣的常量一般被稱作常數(shù)。
聲明常量的格式:
const 類型標識符 常量名 = 表達式;
例:
const double PI=3.14159265;
double r=5.2;
double s=PI*r*r;
Console.Write(“面積={0}”,s);
常量特點:
在程序中,常量只能被賦予初始值。
定義常量時,表達式中的運算符對象只允許出現(xiàn)常量和常數(shù),不能有變量存在。
常量的命名規(guī)則一般采用大寫字母
例如:
int b=18;
const int a=26;
const int k=b+10; //錯誤,表達式中不允許出現(xiàn)變量
const int d=a+23; //正確,因為a是常量
a=56; //錯誤,不能修改常量的值
【例2.4】常量的聲明和賦值示例
單元練習(xí)
判斷題:
1. C#規(guī)定所有變量必須先聲明后使用。 ( )
2.雙精度浮點數(shù)類型double由8個字節(jié)組成。( )
3. 執(zhí)行const int a=10; a=a+1; 這兩條語句后, a的值為11。( )
填空題:
1.使用變量a存放數(shù)據(jù)-389,則將變量聲明為( )類型最合適。
2.4 預(yù)定義數(shù)據(jù)類型
C#的內(nèi)置值類型表示基本數(shù)據(jù)類型:
整型
浮點類型
decimal類型
bool類型
字符類型
C#支持兩個預(yù)定義的引用類型
object
string
2.4.1 整型
C#支持8個預(yù)定義整數(shù)類型,分別支持8位、16位、32位和64位整數(shù)值的有符號和無符號的形式
【例2.5】整型變量示例
2.4.2 浮點類型
C#支持2種浮點數(shù)據(jù)類型(float和double),用于包含小數(shù)的計算
【例2.6】浮點類型變量示例
2.4.3 decimal類型
C#支持高精度小數(shù)類型(decimal),decimal數(shù)據(jù)類型一般用于財務(wù)計算,即可以用較大的精確度來表示貨幣值。
注意:小數(shù)類型數(shù)據(jù)的后面必須跟m或者M后綴來表示它是decimal類型的,如3.14m、0.28m等,否則就會被解釋成標準的浮點類型數(shù)據(jù),導(dǎo)致數(shù)據(jù)類型不匹配。
【例2.7】decimal類型變量示例
常量后綴表示方法
138f 代表float類型的數(shù)值138.0
518u 代表uint類型的數(shù)值518
36897123ul 代表ulong類型的數(shù)值 36897123
22.1m 代表decimal類型的數(shù)值22.1
12.68 代表double類型的數(shù)值12.68
36 代表int類型的數(shù)值36
特例:前綴
0x開頭表示16進制
建議
初學(xué)者,先牢記以下幾種:
int型 :一般要表示帶符號的整數(shù)時,先考慮使用int型;
uint型 :一般需要不帶符號的整數(shù)時,先考慮使用uint型;
double型:一般需要做科學(xué)計算,并且精度要求不是很高時,考慮使用double型。
2.4.4 bool類型
C#的bool數(shù)據(jù)類型用于邏輯運算,包含bool值true或false
例:
bool b=5>3; //b的值為true;
b=false;
【例2.8】布爾類型變量示例
2.4.5字符類型
C#的char數(shù)據(jù)類型用于保存單個字符的值,如:
‘你’、 ‘A’、 ‘?’、 ‘6’、‘2’
C#語言中,四種形式:
字符使用單引號括起來(例如‘A’)
使用4位16進制的Unicode值(例如‘\u0041’)
帶有數(shù)據(jù)類型轉(zhuǎn)換的整數(shù)值(例如(char)65)
16進制數(shù)(‘\x0041’)
【例2.9】字符類型變量示例
2.4.5字符類型
為了表示單引號和反斜杠等特殊的字符常數(shù),C#提供了轉(zhuǎn)義符。特殊符號則需要使用轉(zhuǎn)義序列表示。
2.4.6 object類型
object類型是C#編程語言的類層次結(jié)構(gòu)的根類型,object是System.Object的別名,所有的類型都隱含地最終派生于System.Object類。
object類型主要可以用于兩個目的:
可以使用object引用綁定任何類型的對象
object類型執(zhí)行許多基本的一般用途的方法,包括Equals()、GetHashCode()、GetType()和ToString()等
2.4.6 object類型
對于任一個object變量,均可以賦以任何類型的值。
double d=3.14;
object obj1;
obj1=d;
obj1=‘k’;
對于object類型的變量,聲明必須使用object關(guān)鍵字。
TestObject實驗
using System;
namespace Test
{
public class TestObj
{
static void Main()
{
object x = 25;
Console.WriteLine("{0},{1},{2},{3}",x,x.GetHashCode(),x.GetType(),x.ToString());
Console.ReadKey();
}
}
}
2.4.7 string類型
C#字符串處理使用string(System.String的別名)類型表示零或更多Unicode字符組成的序列
string是引用類型
一個字符串是被雙引號包含的一系列字符。
string類是專門用于對字符串進行操作的。
如:
string str1="中國,";
string str2="你好!";
string str3=str1+str2; //這相當(dāng)于str3="中國,你好!"
char c=str3[0]; //取出str3的第一個字符,即“中”字。
TestString實驗
using System;
namespace test
{
public class TestCls
{
static void Main()
{
string str1 = "abdc";
string str2 = "中國人";
Console.WriteLine("{0},{1},{2},{3}",str1[2],str2[2],str1.Length,str2.Length);
}
}
}
2.4.7 string類型
C#支持兩種形式的字符串
正則字符串(regular string)
包含在雙引號中的零個或多個字符組成(如"hello"),并且可以包含簡單轉(zhuǎn)義序列(如表示制表符的\t)、十六進制轉(zhuǎn)義序列和Unicode轉(zhuǎn)義序列
原義字符串(verbatim string)
由@字符后跟開始的雙引號字符、零個或多個字符以及結(jié)束的雙引號字符組成。一個簡單的示例就是 @“hello“ (不解釋轉(zhuǎn)義字符)
【例2.10】字符串類型變量示例
正則字符串(regular string)
例1: “this is a test”
“C#程序設(shè)計教程”
例2:
using System;
class StrDemo
{
static void Main( )
{
Console.WriteLine("First\0line\nSecond\0line");
Console.WriteLine("你好\a");
Console.WriteLine(“1\t2\t3");
Console.WriteLine(“*\t**\t***”);
}
}
正則字符串(regular string)
例3:
using System;
class StringDemo
{
public static void Main( )
{
string str1=“A string”;
string str2="Another string.";
Console.WriteLine(“{0}\n{1}”,str1,str2);
}
}
原義字符串(verbatim string)
逐字字符串常數(shù)以@開頭,后跟一對雙引號,在雙引號中放入字符。如:
@“電子高專”
@“This is a book.”
逐字字符串常數(shù)同常規(guī)字符串常數(shù)的區(qū)別:
在逐字字符串常數(shù)的雙引號中,每個字符都代表其最原始的意義,在逐字字符串常數(shù)中沒有轉(zhuǎn)義字符。
注意:如果要包含雙引號("),就必須在一行中使用兩個雙引號("")。
原義字符串(verbatim string)
string str1; //定義字符串類型
string str2="hello, world"; //規(guī)則字符串常數(shù):hello, world
string str3=@"hello, world"; //逐字字符串常數(shù):hello, world
string str4="hello \t world"; //hello world
string str5=@ "hello \t world"; //hello \t world
string str6=“He said\" Hello \" to you"; //Tom said "Hello" to you
string str7=@“He said ""Hello"" to you"; //Tom said "Hello" to you
原義字符串(verbatim string)
例(運行見TestStrA.cs)
using System;
class Test
{
static void Main( )
{
Console.WriteLine(@"This is a verba
tim string literal
that spans several lines. ");
Console.WriteLine(@"Here is some tabbed output:
1 2 3 4
5 6 7 8
");
Console.WriteLine(@"Programmers say, " "I like C#""");
}
}
2.4.8 可以為null的類型
可以為null的類型表示可被賦值為null值的值類型變量
其取值范圍為其基礎(chǔ)值類型正常范圍內(nèi)的值,再加上一個null值。
例如,bool? (Nullable<bool>)的值包括true、false或null
可以為null的類型的聲明語法:
T? x; 或Nullable<T> x;
其中的T為值類型。語法T?是Nullable<T>的簡寫。
可以為null的類型賦值的方法與為一般值類型賦值的方法相同。
例如:int? x = 10;
【例2.11】可以為null的類型示例
2.5 類型轉(zhuǎn)換
數(shù)據(jù)類型在一定條件下是可以相互轉(zhuǎn)換的。C#允許使用兩種轉(zhuǎn)換的方式:隱式轉(zhuǎn)換和顯式轉(zhuǎn)換。
隱式轉(zhuǎn)換
只允許發(fā)生在從小的值范圍的類型到大的值范圍的類型的轉(zhuǎn)換,轉(zhuǎn)換后的數(shù)值大小不受影響。 隱式轉(zhuǎn)換是系統(tǒng)默認的、不需要加以聲明就可以進行的轉(zhuǎn)換。
隱式數(shù)據(jù)轉(zhuǎn)換的使用方法如下:
int i=518; //a為整型數(shù)據(jù)
long b=i; //b為長整型數(shù)據(jù)
float f=i; //f為單精度浮點型數(shù)據(jù)
2.5.1 隱式轉(zhuǎn)換
2.5.2 顯式轉(zhuǎn)換(強制轉(zhuǎn)換)
顯式轉(zhuǎn)換又叫強制類型轉(zhuǎn)換,顯式轉(zhuǎn)換要明確指定轉(zhuǎn)換類型。
顯式轉(zhuǎn)換格式:
(類型標識符)表達式
意義為:將表達式的值的類型轉(zhuǎn)換為類型標識符的類型。
比如:
(char)65 //把int類型的65轉(zhuǎn)換成char類型
注意:(1)顯式轉(zhuǎn)換可能會導(dǎo)致錯誤。
(2)對于將float,double, decimal轉(zhuǎn)換為整數(shù),將通過舍
入得到最接近的整型值,如果這個整型值超出目標
域,則出現(xiàn)轉(zhuǎn)換異常。
比如:
(int)6.58m // 轉(zhuǎn)換的結(jié)果為6
(int) 3e25f //將產(chǎn)生溢出錯誤3*1025
2.5.3 裝箱和拆箱
C#中所有的類型都繼承于System.Object根類型,而所有的值類型都繼承于System.ValueType類型
通過裝箱(boxing)和拆箱(unboxing)機制,可以實現(xiàn)值類型和引用類型之間的轉(zhuǎn)換
1. 裝箱轉(zhuǎn)換
裝箱轉(zhuǎn)換是指將一個值類型的數(shù)據(jù)隱式地轉(zhuǎn)換成一個對象類型(object)的數(shù)據(jù)。
例如:下面的兩條語句就執(zhí)行了裝箱轉(zhuǎn)換:
int i=518;
object obj=i;
1.裝箱轉(zhuǎn)換
例:在程序中執(zhí)行裝箱轉(zhuǎn)換。
using System;
class BoxingDemo
{ static void Main( )
{ Console.WriteLine("執(zhí)行裝箱轉(zhuǎn)換:");
int k=200;
object obj=k;
k=300;
Console.WriteLine("obj={0}",obj);
Console.WriteLine("k={0}", k); }
}
2.拆箱轉(zhuǎn)換
2.拆箱轉(zhuǎn)換
和裝箱相反,拆箱轉(zhuǎn)換是指將一個對象類型的數(shù)據(jù)顯式地轉(zhuǎn)換成一個值類型數(shù)據(jù)。
例如: object obj=228;
int k=(int)obj;
【例2.12】裝箱(boxing)和拆箱(unboxing)示例
2.拆箱轉(zhuǎn)換
例:在程序中使用拆箱轉(zhuǎn)換。
using System
class UnboxingDemo
{
static void Main( )
{
int k=228;
object obj=k; //裝箱轉(zhuǎn)換
int j=(int ) obj; //拆箱轉(zhuǎn)換
Console.WriteLine("k={0}\tobj={1}\tj={2}", k, obj, j);
}
}
2.5.4 Convert類提供的類型轉(zhuǎn)換方法
using System; //【例2.13】類型轉(zhuǎn)換示例
namespace Chapter02
{
class ConversionTest
{
static void Main()
{
sbyte sbyte1 = 123; //隱式類型轉(zhuǎn)換:int 到 sbyte
short short1 = 123; //隱式類型轉(zhuǎn)換:int 到 short
ushort ushort1 = 123; //隱式類型轉(zhuǎn)換:int 到 ushort
Console.WriteLine("{0},{1},{2}", sbyte1, short1,ushort1);
//int itest = 234L; //不能隱式轉(zhuǎn)換 long 到int
double dNumber = 23.55;
int iNumber = System.Convert.ToInt32(dNumber);// Returns 24四舍五入
int iNumint = (int)dNumber; //向下取整 返回 23
bool bNumber = System.Convert.ToBoolean(dNumber);// Returns True
string strNumber = System.Convert.ToString(dNumber);// Returns "23.55"
char chrNumber = System.Convert.ToChar(strNumber[1]);// Returns '3'
Console.WriteLine("{0},{1},{2},{3},{4}", iNumber, iNumint,bNumber, strNumber , chrNumber);
Console.ReadKey();
}
}
}
2.5.4 checked關(guān)鍵字
使用關(guān)鍵字checked可以指定已檢查的上下文;
使用關(guān)鍵字unchecked可以指定未檢查的上下文。
【例2.14】checked關(guān)鍵字使用示例
using System;
class MyExceptionTest
{
static void Main(string[] args)
{
int i = int.MaxValue;//結(jié)果:2147483647
try
{ checked
{
int j = i + 1; //發(fā)生異常
}
//或者寫成 int j= checked(i+1);否則無法捕獲異常
}
catch (System.OverflowException e)
{
Console.WriteLine(e.ToString());
}
unchecked
{
long i1 = 2147483649;
int j1 = (int)i1;//結(jié)果:-2147483647
Console.WriteLine(i1);
Console.WriteLine(j1);
byte i2 = 129;
sbyte j2 = (SByte)i2;//結(jié)果:-127 ,沒有unchecked,也可以通過編譯
//sbyte j3 = (SByte)200;// 如果沒有unchecked,則編譯出錯
Console.WriteLine(i2);
Console.WriteLine(j2);
}
Console.ReadKey();
}
}
2.6 輸入/輸出操作
控制臺(console)輸入/輸出主要通過命名空間System中的類Console來實現(xiàn),它提供了從控制臺讀寫字符的基本功能。控制臺輸入主要通過Console類的Read方法ReadLine方法來實現(xiàn)的,控制臺輸出主要通過Console類的Write和WriteLine方法來實現(xiàn)的。
2.6.1 Console.WriteLine( ) 方法
WriteLine( )方法的作用是將信息輸出到控制臺,但是WriteLine方法在輸出信息的后面添加一個回車換行符用來產(chǎn)生一個新行。
在WriteLine( )方法中,可以采用“{N[,M][:格式化字符串]}”的形式來格式化輸出字符串,其中的參數(shù)含義如下:
花括號(“{}”)用來在輸出字符串中插入變量。
N表示輸出變量的序號,從0開始,如當(dāng)N為0時,則對應(yīng)輸出第1個變量的值,當(dāng)N為5時,則對應(yīng)輸出第6個變量的值,依次類推。
[,M][:格式化字符串]是可選項,其中M表示輸出的變量所占的字符個數(shù),當(dāng)這個變量的值為負數(shù)時,輸出的變量按照左對齊方式排列;如果這個變量的值為正數(shù)的時候,輸出的變量按照右對齊方式排列。
[:格式化字符串]也是可選項,因為在向控制臺輸出時,常常需要指定輸出字符串的格式。通過使用標準數(shù)字格式字符串,可以使用Xn的形式來指定結(jié)果字符串的格式,其中X指定數(shù)字的格式,n指定數(shù)字的精度,即有效數(shù)字的位 數(shù)。這里提供8個常用的格式字符。
1. 貨幣格式
貨幣格式C或者c的作用是將數(shù)據(jù)轉(zhuǎn)換成貨幣格式,在格式字符C或者c后面的數(shù)字表示轉(zhuǎn)換后的貨幣格式數(shù)據(jù)的小數(shù)位數(shù)。
例如:
double k = 1234.789;
Console.WriteLine("{0,8:c}", k);
Console.WriteLine("{0,9:c}", k);
Console.WriteLine("{0,10:c}ok", k);
Console.WriteLine("{0,-10:c}ok", k );
Console.WriteLine("{0,10:c4}", k);
詳見:WriteExam.cs代碼
2. 整數(shù)數(shù)據(jù)類型格式
格式字符D或者d的作用是將數(shù)據(jù)轉(zhuǎn)換成整數(shù)類型格式。
例如:
int k=1234;
Console.WriteLine(“{0:D}”, k); //結(jié)果是1234
Console.WriteLine(“{0:d3}”, k); //結(jié)果是1234
Console.WriteLine(“{0:d5}”, k); //結(jié)果是01234
3. 科學(xué)計數(shù)法格式
格式字符E或者e的作用是將數(shù)據(jù)轉(zhuǎn)換成科學(xué)計數(shù)法格式。
例如:int k=123000;
double f=1234.5578;
Console.WriteLine(“{0:E}”, k); //結(jié)果是1.230000E+005
Console.WriteLine(“{0:e}”, k); //結(jié)果是1.230000e+005
Console.WriteLine(“{0:E}”, f); //結(jié)果是1.234558E+003
Console.WriteLine(“{0:e}”, f); //結(jié)果是1.234558e+003
Console.WriteLine(“{0:e4}”, k); //結(jié)果是1.2300e+005
Console.WriteLine(“{0:e4}”, f); //結(jié)果是1.2346e+003
4. 浮點數(shù)據(jù)類型格式
格式字符F或者f的作用是將數(shù)據(jù)轉(zhuǎn)換成浮點數(shù)據(jù)類型格式。
例如:
int a=123000;
double b=1234.5578;
Console.WriteLine("{0,-10:f}ok",a);//結(jié)果是123000.00 ok
Console.WriteLine("{0:f}",b);//結(jié)果是1234.56
Console.WriteLine("{0,12:f4}",a);//結(jié)果是 123000.0000前面有一個空格
Console.WriteLine("{0:f3}",b);//結(jié)果是1234.558
Console.WriteLine("{0:f6}",b);//結(jié)果是1234.557800
5. 通用格式
格式字符G或者g的作用是將數(shù)據(jù)轉(zhuǎn)換成通用格式。
例如:
double k=1234.789;
int j=123456;
Console.WriteLine(“{0:g}”, j); //結(jié)果是123456
Console.WriteLine(“{0:g}”, k); //結(jié)果是1234.789
Console.WriteLine(“{0:g4}”, k); //結(jié)果是1235
Console.WriteLine(“{0:g4}”, j); //結(jié)果是1.235e+05
6. 自然數(shù)據(jù)格式
格式字符N或者n的作用是將數(shù)據(jù)轉(zhuǎn)換成自然數(shù)據(jù)格式。
例如:
double k=211122.12345;
int j=1234567;
Console.WriteLine(“{0:N}”,k); //結(jié)果是211,122.12
Console.WriteLine(“{0:n}”, j); //結(jié)果是1,234,567.00
Console.WriteLine(“{0:n4}”, k); //結(jié)果是211,122.1235
Console.WriteLine(“{0:n4}”, j); //結(jié)果是1,234,567.0000
7. 十六進制數(shù)據(jù)格式
格式字符X或者x的作用是將數(shù)據(jù)轉(zhuǎn)換成十六進制數(shù)據(jù)格式,在格式字符X或者x后面的數(shù)字表示轉(zhuǎn)換后的十六進制數(shù)據(jù)的數(shù)據(jù)位數(shù)。
例如:
int j=123456;
Console.WriteLine("{0:x}", j); //結(jié)果是1e240
Console.WriteLine("{0:x6}", j); //結(jié)果是01e240
還可以不使用參數(shù)調(diào)用WriteLine( )方法,這時將在控制臺中產(chǎn)生一個新行。
例: 利用Console.WriteLine( )方法輸出變量值。程序代碼如下:
using System;
class Test
{
static void Main( )
{
int i=12345;
double j=123.45678;
Console.WriteLine("i={0,8:D} j={1, 10: F3}", i , j);
Console.WriteLine( );
Console.WriteLine("i={0,-8:D} j={1, -10: F3}", i , j);
}
}
2.6.2 Console.Write( )方法
Write( )方法和WriteLine( )方法類似,都是將信息輸出到控制臺,但是輸出到屏幕后并不會產(chǎn)生一個新行,即換行符不會連同輸出信息一起輸出到屏幕上,光標將停留在所輸出信息的末尾。
在Write( )方法中,也可以采用“{N[,M][:格式化字符串]}”的形式來格式化輸出字符串,其中的參數(shù)含義如同WriteLine( )方法。
例: 利用Console.WriteLine( )方法輸出變量值。程序代碼如下:
using System;
class Test
{
static void Main( )
{
int i=12345;
double j=123.45678;
Console.Write("i={0,8:D} j={1, 10: F3} ", i , j);
Console.Write("i={0,-8:D} j={1, -10: F3}", i , j);
}
}
2.6.3 Console.ReadLine( )方法
ReadLine( )方法用來從控制臺讀取一行數(shù)據(jù),一次讀取一行字符的輸入,并且直到用戶按下回車鍵它才會返回。
ReadLine( )方法并不接收回車鍵。如果ReadLine( )方法沒有接收到任何輸入,或者接收了無效的輸入,那么ReadLine( )方法將返回null。
正常返回輸入的字符串。
例:用ReadLine( )方法接收用戶輸入,然后輸出。
using System;
class Test
{ static void Main( )
{ string str;
Console.WriteLine(“請輸入你的姓名:”);
str=Console.ReadLine( );
Console.WriteLine(“{0},歡迎你!”,str);
}
}
2.6.4 Console.Read( )方法
Read( )方法的作用是從輸入流(控制臺)讀取下一個字符,Read( )方法一次只能從輸入流讀取一個字符,并且直到用戶按回車鍵才會返回。
當(dāng)這個方法返回時,如果輸入流中包含有效的輸入,則它返回一個表示輸入字符的整數(shù);如果輸入流中沒有數(shù)據(jù),則返回-1。
例:通過Console.Read( )方法從控制臺接收用戶的輸入,然后顯示接收的內(nèi)容。程序代碼如下:
using System;
class TestIo
{ static void Main( )
{ Console.Write("請輸入字符:");
int a=Console.Read( );
Console.WriteLine("用戶輸入的內(nèi)容為:{0}",a);
}
}
練習(xí)
以下標識符中,錯誤的是( )
A. _b39 B. x345
C. 6_321 D. nAverage
以下標識符中,正確的是( )
A. _nName B. Main
C. 6b D. x5#
練習(xí)
( )是decimal類型數(shù)據(jù)
A.123L
B.123.4
C.123.4F
D.123.4M
已知大寫字母A的ASCII碼是65,小寫字母a的ASCII碼
是97,則十六進制字符常量‘\u0042’表示( )
A.字符a B.字符A
C.字符b D.字符B
練習(xí)
編寫程序,驗證隱式轉(zhuǎn)換、顯式轉(zhuǎn)換、裝箱拆箱。
回答
byte x= 200;
sbyte y = (sbyte)200;
y值是多少,為什么?
區(qū)別Read()和ReadLine()方法,結(jié)合數(shù)據(jù)類型轉(zhuǎn)換,通過以上方法對整型變量賦值。
int n;
n = Console.Read(); //如果輸入2回車,則n為多少?
n=n-48; // n為多少?
如果輸入10回車,則n為多少?
程序可修改為:
int n;
n = Convert.ToInt32(Console.ReadLine());
補充
Parse( )方法:
主要用于將數(shù)字的字符串表示形式轉(zhuǎn)換為它的等效的其他基本數(shù)字類型。
數(shù)據(jù)類型.Parse(字符串)
注意:數(shù)據(jù)類型可以使用C#數(shù)據(jù)類型,也可以使用CTS
例: string s=“18”;
int a=int.Parse(s)-10; //a=8
int b=a+int.Parse(Console.ReadLine());
實驗和習(xí)題
電話號碼升位:
升位規(guī)則:6位-8位,在第1位和第2位之間添加數(shù)字8,然后在首位加2.
輸入坐標,判斷屬于下面哪個區(qū)域,正方形邊長為1,圓半徑為1。
思考題
四個人做了好事,有下面對話:
A:不是我
B: 是C
C:是D
D:C胡說
其中三個人說了真話,誰做了好事?
數(shù)據(jù)結(jié)構(gòu)查找ppt:這是數(shù)據(jù)結(jié)構(gòu)查找ppt,包括了基本概念與術(shù)語,靜態(tài)查找表,動態(tài)查找表,哈希表查找,小結(jié)與習(xí)題等內(nèi)容,歡迎點擊下載。
數(shù)據(jù)結(jié)構(gòu)ppt最短路徑:這是數(shù)據(jù)結(jié)構(gòu)ppt最短路徑,包括了最短路徑的定義,Dijkstra算法,F(xiàn)loyd算法,F(xiàn)loyd算法——C++描述等內(nèi)容,歡迎點擊下載。
數(shù)據(jù)庫答辯ppt:這是數(shù)據(jù)庫答辯ppt,包括了數(shù)據(jù)庫用戶管理和安全設(shè)置,數(shù)據(jù)庫日志、作業(yè)與警報管理,復(fù)雜數(shù)據(jù)庫備份和數(shù)據(jù)庫維護,收獲與體會等內(nèi)容,歡迎點擊下載。