2017-9-15第一次學習C#內容(隱式轉換,語句,輸入輸出,格式字符串,示例)
- 類型轉換
1).隱式轉換
註意:
隱式轉換中不存在向char類型的隱式轉換,float和double類型也不能隱式轉換為decimal型.
2)強制類型轉換
(目標類型) (表達式)
3)其他方式的轉換\
①Parse
目標類型.Parse(待轉換字符串)
②as
as運算符用以在兼容的引用類型之間執行某些類型的轉換。如果要轉換的類型與指定的類型兼容,轉換就會成功,反之,就會失敗as運算符就會返回null而不是引發異常。
③裝箱與拆箱
裝箱和拆箱能使值類型能夠與object類型發生轉換
裝箱是將值類型轉換為引用類型,即分配一個對象實例並將“值類型”的值復制到該實例中。
而拆箱是將引用類型轉換為值類型。拆箱操作首先檢查對象實例,確保它是給定值類型的一個裝箱值,然後將該 值從對象實例復制到值類型變量中。
//自己總結:拆箱和裝箱使一個依存的操作只有在裝箱的基礎上才存在所謂的拆箱。
- 語句
1) 可作為語句的表達式:
使用new運算符的對象分配 A=new object();
各種賦值運算
自增自減運算
2) 方法調用語句
對象名.方法名(參考列表);//調用不同類的實例方法
String s=”hello“’; s=s.ToUpper();
類名.方法名(參考列表);//調用不同類的靜態方法 Console.WriteLine(“Hello”);
方法名(參考列表);//調用同一類的方法 Max (a,b);
- 輸入輸出
C#中並不提供輸入輸出語句,其輸入輸出操作是借助於一些預定義類來實現的。
Console類提供用於從控制臺讀取單個字符或整行的方法,並且該類還可將值類型的數據,字符數組以及對象集自動轉換為格式化或未格式化的字符串,然後將該字符串寫入控制臺。
使用Console類需要在源程序開頭使用using指令進行命名空間system的引入如果沒有引入該命名空間則需要在程序設計的時候使用Console的完全限定名,應把Console替換為System。Console
1) 輸入方法
① Read Read方法從標準輸入流讀取下一個字符。其返回是輸入流種下一個字符的Unicode編碼值,返回值類型是System.Int32;如果當前沒有更多的字符可供讀取則返回1.定義的方法: public static int Read();
註意: Read方法只有在同時ctrl+Z,發出到達文件的結尾的時候;按發出文件結尾條件的等效按鍵例如windows中的F6;將輸入流重定向到具有實際的文件尾字符的源,例如文本文件。
② ReadLine 從標準的輸入流中讀取下一行的字符,其返回值類型為System.String;如果沒有更多的可用行,則返回null方法定義如下:public statid string ReadLine();如果在該方法讀取輸入的時候按curl+z則返回的為null
③ ReadKey
ReadKey方法獲取用戶的下一個字符或者功能鍵。返回值類型為:System.ConcoleKeyInfo,描述Consolekey常數和對應於按下控制臺鍵的Unicode字符(如果存在這樣的字符)
ConsoleKeyInfo對象還以ConsoleModifiers值得安位組合描述按在控制臺鍵的同時按下shift,Alt,Ctrl鍵中的一個。
兩種重載方法如下:public static consoleJKeyInfo ReradKey();
Public static ConsoleKeyInfo ReadKey(bool intercept);
2) 輸出方法
① Writer 輸出後並沒有自動換行
② WriterLine 輸出後自動換行
WriteLine(輸出項);
WriterLine(格式控制,輸出列表);Console.WriterLine(“{0:X}”,d); //將d按16進制輸出後回車
WriterLine(); //輸出空行
4.格式字符串
格式項:
{索引 [,對齊] [:格式字符串] }
① 索引 ,即強制“索引”組件(也叫作參數說明符)是一個從0開始的數字,可表示對象列表中對應的第多少項;通過指定同樣的參數說明符,多個格式項可以指定對象列表中的同一個元素//自己的話說就是方便為同一個參數項設置不同的格式類型而已。
例如 {0:X}{0:E}{0:N}的復合格式字符串,可以將第一個列表項的數值設置為16進制,科學計數法和數字格式進行輸出
② 對齊 正數為右對齊反之
③ 如果指定格式說明符則需要使用冒號:
5.當四個數字相比較的時候怎樣使if 的嵌套相對比較少的選擇如下:
中心思想就是兩個兩個的相互比較,從中選擇出相對應的關系出來
代碼: int a, b, c, d,t;
a = Convert.ToInt32(Console.ReadLine()); //這樣的話每次的輸入都要以回車鍵結束
b = Convert.ToInt32(Console.ReadLine());
c = Convert.ToInt32(Console.ReadLine());
d = Convert.ToInt32(Console.ReadLine());
if (a > b) { t = a; a = b; b = t; }
if (a > c) { t = a; a = b; b = t; }
if (a > d) { t= a; a = d; d = t;}
if (b > c) { t = b ; b = c; c = t;}
if (b > d) { t = b; b = d; d = t; }
if (c > d) { t = c ; c = d; d = t;}
Console .WriteLine ("{0},{1} ,{2},{3}",a, b, c, d);
6.兔子繁殖問題
題目:有一對兔子,從出生後第三個月起每月生一對兔子,小兔子長到第三個月又生一對兔子,假如兔子都不會死亡,那麽將會在第幾個月的時候兔子的數量達到100對??
::兔子的數量規律的數列:1,1,2,3,5,8,。。。。,即從第三個月開始兔子的數量為前每兩個月的兔子之和,是著名的斐波那契數列。
代碼:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int i, f1 = 1, f2 = 1,fn;
for (i = 3; ; i++)
{
fn = f1 + f2;
if (fn >= 100)
{
Console.WriteLine("第{0}個月兔子的數量達到ì了100對?", i);
break;
}
f1 = f2;
f2 = fn;
}
Console.ReadLine();
}
}
}
2017-9-15第一次學習C#內容(隱式轉換,語句,輸入輸出,格式字符串,示例)