第二阶段_第三小节_C#基础
?
?
第二小節(jié)
?
?
本節(jié)用到的方法舉例
自學(xué)API方法
?
//自學(xué)API的步驟:
//1.看名字猜功能
//2.看方法描述信息
//3.看參數(shù)(類型、名稱、描述信息)
//4.看返回值(類型、描述信息)
//5.測(cè)試去吧
?
字符串拼接
" "+變量+" "
Console.WriteLine("當(dāng)前槍為:" + gunType + ",攻擊力是:" + atk);
?
Format
string result = string.Format(" 格式 " , 變量 );
?
Random
Random random = new Random();
int str = random.Next(1,101);
?
indexof
int a = str.IndexOf('你');//查找字符索引的功能。
?
substring
string newString = str.Substring(3);//截取子字符串的功能。
?
Insert
string str01 = str.Insert(1, "特");//在第幾位插入什么字符串。
?
Remove
string str02 = str.Remove(2);//刪除第幾個(gè)字符以及后面的字符
?
Replac
string str03 = str.Replace('我', '你');//替換所有"我"為"你"。
?
常用符號(hào)知識(shí)點(diǎn)
?
占位符
形式:占位符 {位置的編號(hào)}
例子:string result = string.Format("當(dāng)前槍為:{0}, gunType);
標(biāo)準(zhǔn)數(shù)字格式化字符串
?
Console.WriteLine("{0:c}", 10);//¥10.00 以貨幣格式顯示
Console.WriteLine("{0:f1}", 1.26);//1.3 保留指定精度的小數(shù)位(四舍五入)
//2:0 --》 1:59 --》 1:2 //02:00 --》 01:59 --》 01:02
Console.WriteLine("{0:d2}", 5);//05 保留指定位數(shù),不足在前使用0填充
Console.WriteLine("{0:p1}", 0.123);
?
轉(zhuǎn)義符
形式:改變字符的原始含義 \" \' \0 \t \\
例子:
c1 = '\0';//空字符
string s = "";//空字符串
Console.WriteLine("你\t好");//水平制表格 tab鍵
Console.WriteLine("你\r\n好");//回車換行
?
運(yùn)算符
?
算數(shù)運(yùn)算符+ - * / %取模(余數(shù))
參與運(yùn)算符的數(shù)據(jù)為float,結(jié)果為float
string r2 = str01 + str02 字符串拼接,沒有數(shù)學(xué)運(yùn)算
?
//作用:
//1. 一個(gè)整數(shù)能否被另外一個(gè)數(shù)整除
//num01 是否為偶數(shù) true/false
bool r6 = num01 % 2 == 0;
//2. 獲取個(gè)位
//num01 的個(gè)位數(shù)是?
int r7 = num01 % 10;
?
?
快捷運(yùn)算符+= -= *= /= %=
?
num05 += 1;//【累加】 num05 = num05 +1
?
?
比較運(yùn)算符
形式:<= >= == ….
例子:bool re9 = str01 == str02;
?
邏輯運(yùn)算符
形式:與&& 或|| 非!
例子:bool r10 = true && true;//真 與 真 結(jié)果:真
實(shí)際例子:
如果到了最左邊 && 還想向左移動(dòng) || 到了最右邊 && 還想向右移動(dòng)
停
?
一元運(yùn)算符
?
++在后,則后自增,先返回結(jié)果
++在前,則先自增,后返回結(jié)果
?
例子:???????? int num08 = 1;
int t1 = num08++;//賦值 自增
Console.WriteLine(t1);//1
int num09 = 1;
int t2 = ++num09;//自增 賦值
Console.WriteLine(t2);//2
?
三元運(yùn)算符
定義:有選擇性賦值的運(yùn)算符
形式: 條件 ? 滿足條件的結(jié)果 : 不滿足條件的結(jié)果
例子:string r13 = true ? "ok" : "no";
錯(cuò)誤例子:int r14 = str01 == str02 ? "a" : 20; //結(jié)果類型必須兼容
?
?
數(shù)據(jù)類型轉(zhuǎn)換
?
Parse轉(zhuǎn)換:字符串轉(zhuǎn)換為其他類型
注意:字符串如果不是該類型的字符串表達(dá)形式(字符串長得不像需要轉(zhuǎn)換的類型),則拋異常
例子:int intAtk = int.Parse("100");
?
ToString轉(zhuǎn)換:任意類型轉(zhuǎn)換為字符串類型
例子:string strAtk = intAtk.ToString();
?
隱式轉(zhuǎn)換:小范圍到大范圍的 自動(dòng)類型轉(zhuǎn)換
例子:byte b1 = 200;
int i1 = b1;
?
顯式轉(zhuǎn)換:大范圍到小范圍的 強(qiáng)制類型轉(zhuǎn)換
注意:可能造成精度的丟失
int i2 = 800;
byte b2 = (byte)i2;//32
//備注:通常發(fā)生在數(shù)值間
多種類型參與的運(yùn)算,會(huì)產(chǎn)生類型自動(dòng)提升
例子: byte num01 = 200;//1.1
byte num02 = 100;//5 6.1
byte re = (byte)(num01 + num02);
//int re = num01 + num02;
?
int num03 = 1;
num03 += 1;
num03 = num03 + 1;
?
byte num04 = 10;
num04 += 255;//快捷運(yùn)算符 沒有類型提升
num04 = (byte)(num04 + 1);
?
語句
選擇語句
?
If-else
如果具有多個(gè)條件,請(qǐng)將耗時(shí)的計(jì)算放置最后
?
Else-if
Switch
?
?
?
?
?
?
?
?
?
?
?
短路邏輯
如果具有多個(gè)條件,請(qǐng)將耗時(shí)的計(jì)算放置最后
例子:
int n1 = 1, n2 = 2;
// false && ?
bool r1 = n1 > n2 && n1++ > 0;
Console.WriteLine(n1);// [1]
?
// true || ?
bool r2 = n1 < n2 || n2++ > 0;
Console.WriteLine(n2);// [2]
?
?
循環(huán)語句
?
For循環(huán)
形式:
for(初始值;循環(huán)條件;增減變量)
{
循環(huán)體
}
?
1-100和
?
1-100偶數(shù)和
?
?
While循環(huán)
?
形式:while(條件)
{
循環(huán)體
}
?
?
球彈起
?
?
do while循環(huán)
?
形式:
do
{
*
}while(條件);
?
?
猜數(shù)字
?
?
?
Do while 和 while區(qū)別
while(條件); 當(dāng)滿足條件 再做
與while區(qū)別:do while先執(zhí)行循環(huán)體,再判斷條件
?
?
?
復(fù)習(xí)
?
?
?
?
If復(fù)習(xí)
For復(fù)習(xí)
?
While復(fù)習(xí)
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
輸入月份輸出天數(shù)
對(duì)折紙張
小球彈起需求練習(xí)
?
?
?
?
?
跳轉(zhuǎn)語句
?
?
Break 跳出循環(huán);
?
?
?
?
?
?
?
?
?
?
方法
?
語法
//定義方法:做一個(gè)功能
//返回值:方法定義者 告訴 方法調(diào)用者 的結(jié)果
//類型:數(shù)據(jù)類型
//void:沒有返回值
?
?
?
?
?
?
?
注意
?
return;//退出方法
//參數(shù):方法調(diào)用者 告訴 方法定義者的信息
//形參:沒有真實(shí)數(shù)據(jù),形式上模擬的信息
?
//定義方法的原則:方法體要盡可能小,小到獨(dú)立完成一個(gè)事情。 [單一職責(zé)]
//兩個(gè)整數(shù)相加的功能
?
原則
?
?
方法例題
?
?
?
答案:
?
?
API學(xué)習(xí)方法
?
?
?
綜合練習(xí)
月歷輸出
?
private static int CalculateWeekByDay(int year, int month, int day)
{
DateTime dt = new DateTime(year,month,day);
return (int)dt.DayOfWeek;
}
?
private static bool IsLeapYear(int year)
{
//if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
// return true;
//else
// return false;
return year % 4 == 0 && year % 100 != 0 || year % 400 == 0;
}
?
private static int GetDaysByMonth(int year, int month)
{
if (month < 1 || month > 12) return 0;//退出方法 返回?cái)?shù)據(jù)
?
switch (month)
{
case 2:
//if (IsLeapYear(year))
// return 29;
//else
// return 28;
return IsLeapYear(year) ? 29 : 28;
case 4:
case 6:
case 9:
case 11:
return 30;
default:
return 31;
}
}
?
private static void PrintMonthCalendar(int year,int month)
{
//(1)顯示表頭
Console.WriteLine("{0}年{1}月",year,month);
Console.WriteLine("日\t一\t二\t三\t四\t五\t六");
?
//(2)根據(jù)1號(hào)星期數(shù)顯示空白(\t)
int week = CalculateWeekByDay(year, month, 1);//3
for (int i = 0; i < week; i++)
Console.Write("\t");
?
//(3)計(jì)算當(dāng)月天數(shù)
int days = GetDaysByMonth(year, month);//30
for (int i = 1; i <= days; i++)
{
Console.Write(i + "\t");
//(4)每逢周六換行
if (CalculateWeekByDay(year, month, i) == 6)
Console.WriteLine();
}
}
?
private static void PrintYearCalendar(int year)
{
for (int i = 1; i <= 12; i++)
{
PrintMonthCalendar(year, i);
Console.WriteLine();
}
}
?
static void Main()
{
Console.WriteLine("請(qǐng)輸入年份:");
int year = int.Parse(Console.ReadLine());
PrintYearCalendar(year);
}
}
?
?
?
筆試題
短路邏輯
短(斷)路邏輯
如果具有多個(gè)條件,請(qǐng)將耗時(shí)的計(jì)算放置最后
&&短路與
||短路或
if(耗時(shí)的條件算法放后面)
。。。
&與
|或
?
Continue簡化代碼結(jié)構(gòu),
?
?
總結(jié)
以上是生活随笔為你收集整理的第二阶段_第三小节_C#基础的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 第二阶段_第二小节_C#调试
- 下一篇: 第二阶段_第四家小节_C#基础2