接觸C#的第7天
“最後一點就是堅持,有時候寫這些東西真的很痛苦,很讓人抓狂,但是你一旦你堅持下去,久而久之,你會看到自己的進步,某一天你回過頭去看自己以前寫的文章,當你能夠說出:”寫得真他媽菜”,那麼恭喜你,你已經level up了。”
——《程式設計師應該堅持寫技術部落格》原文連結:https://blog.csdn.net/d6619309/article/details/52727326
C#
繼續咱們的巨集圖大業+-+
16.編一個程式,輸入三個實數,要求使用if else語句把它們的中間數找出來,可以使用邏輯運算子。
float x, y, z, second ;//宣告變數(這裡對於second這個變數來說,即可以賦值又可以選擇不賦值,如果不賦值,則second與xyz這三個變數相同都預設值為null) Console.WriteLine("請輸入三個float型別的值:");//輸出 x = float.Parse(Console.ReadLine());//輸入x y = float.Parse(Console.ReadLine());//輸入y z = float.Parse(Console.ReadLine());//輸入z if ((x > y && x < z) || (x < y && x > z))//if語句判斷 second = x; else if ((y > x && y < z) || (y < x && y > z)) second = y; else second = z; //Console.WriteLine("這三個數中的中間數為{0}", second);//<-這是另外一種輸出的寫法 Console.WriteLine("這三個數中的中間數為"+ second); Console.ReadKey();//這句不解釋
這道題主要就是運用if條件語句進行判斷,有一個地方值得注意,那就是if條件中的“||”。其實這裡的“||”用“|”替代的話,程式執行的結果是一樣的。因為“||”和“|”都表示“或”的意思。它們倆的區別就是,“|”連線的兩個條件。在進行判斷的時候,無論第一個條件是否符合,第二個條件仍然會進行判斷。而“||”只有在第一個條件不符合的 情況下才會對第二個條件進行判斷。所以在程式執行的效率上來講,“||”的效率要比“|”更高。
還有一個地方就是最開始宣告變數的地方。當宣告變數的時候,並未對變數進行賦值,所有宣告的變數預設值為null。
17.編一個程式,首先輸入一個成績(0到100的整數),用if else語句然後判斷該成績是優、良、中、及格還是不及格。
double score;//宣告變數
Console.Write("請輸入一個成績:");//輸出
score = double.Parse(Console.ReadLine());//將字串型別轉化為需要的雙精度浮點數
if (score >= 90)//if條件語句
Console.WriteLine("優");
else if (score >= 80)
Console.WriteLine("良");
else if (score >= 70)
Console.WriteLine("中");
else if (score >= 60)
Console.WriteLine("及格");
else
Console.WriteLine("不及格");
Console.ReadKey();
主要結構就是if條件語句。再複習一下,開頭是if,結尾是else,中間可以新增任意多個else if,寫if條件的時候記得加上()
開頭讀取的時候記得將字串轉化為對應的型別。
18.編一個程式,輸入0—100之間的一個學生成績分數,用switch語句輸出成績等第(成績優秀(90-100),成績良好(80-89),成績及格(60-79)和成績不及格(59以下))。
int score;//宣告變數
Console.Write("請輸入學生成績:");//輸出
score = int.Parse(Console.ReadLine());//將輸入的字串型別轉化為int型別(32位有符號的整數)
score = score / 10;//分數除以10後賦值給score
switch (score)
{
case 10:
Console.WriteLine("成績優秀");
break;
case 9:
Console.WriteLine("成績優秀");
break;
case 8:
Console.WriteLine("成績良好");
break;
case 7:
Console.WriteLine("成績及格");
break;
case 6:
Console.WriteLine("成績及格");
break;
default:
Console.WriteLine("成績不及格");
break;
} //倘若在這裡新增一條Console.ReadKey();其實並不奏效,至於原因emmmm
Console.ReadKey();
這個switch的用法詳參微軟的C#參考文件,此處不再贅述。
https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/keywords/switch
19.編一個程式,利用do-while迴圈語句,從鍵盤上輸入10個整數,求出它們的和。
int i = 1, n, sum = 0;
do //dowhile迴圈語句
{
Console.Write("請輸入一個整數:"); // 迴圈的部分
n = int.Parse(Console.ReadLine());
sum = sum + n;
i+=1; //也可以寫成i++
}
while (i <= 10); //求和的十個數在這裡限制
Console.WriteLine("這十個整數的和為{0}", sum);//輸出
Console.ReadKey(); //暫停
20.編一個程式,用while迴圈語句來計算1+1/2+2/3+3/4+...+99/100之和。
double i = 1, s = 1;
while (i <= 99)
{
s = s + i / (i + 1);
i+=1;
}
Console.WriteLine("和為{0}", s);
Console.ReadKey();
這一題和上一題呢都用到了i=i+1這個東西。=是賦值的意思,把右邊的值賦給左邊的變數。在第20題中限制的條件是當i<=90時,i=i+1。其實這個式子還有三個兄弟——
①i+=1(可以認為與i=i+1等價)
②i++
③++i
值得注意的是,如果是單獨執行,看起來效果就是一模一樣的,但是放到語句裡就會變得不一樣了。在計算表示式的時候,會考慮到運算的優先順序。這幾個兄弟中,++i的優先順序最高,其次是i=i+1,i++的優先順序最低。