邏輯語句 條件分支語句 條件分支語句可以讓順序執行的代碼邏輯產生分支,滿足對應條件地執行對應代碼邏輯。 IF語句 //IF語句塊 int a=5; if(a>0&&a<15)//註意結尾無分號 { Console.WriteLine("a在0到15之間"); } //if……else結構 if( f ...
邏輯語句
條件分支語句
條件分支語句可以讓順序執行的代碼邏輯產生分支,滿足對應條件地執行對應代碼邏輯。
IF語句
//IF語句塊
int a=5;
if(a>0&&a<15)//註意結尾無分號
{
Console.WriteLine("a在0到15之間");
}
//if……else結構
if( false )
{
Console.WriteLine("滿足if條件 做什麼");
if( true )
{
if (true)
{
}
else
{
}
}
else
{
if (true)
{
}
else
{
}
}
}
else
{
Console.WriteLine("不滿足if條件 做什麼");
if (true)
{
}
else
{
}
}
//if……elseif 結構
int a3 = 6;
if (a3 >= 10)
{
Console.WriteLine("a3大於等於10");
}
else if( a3 > 5 && a3 < 10 )
{
Console.WriteLine("a3在6和9之間");
}
else if( a3 >= 0 && a3 <= 5 )
{
Console.WriteLine("a3在0和5之間");
}
else
{
Console.WriteLine("a小於0");
}
//對於初學者而言,代碼邏輯要整齊,錯落有致,方便對比嵌套邏輯語句塊的配對
if語句的小練習--分辨奇偶數字
try
{
console.writeline("請輸入一個整數");
int num = int.parse(console.readline());
//能被2整除的數 叫偶數
if (num % 2 == 0)
{
console.writeline("your input is even");
}
else
{
console.writeline("your input is odd");
}
}
catch
{
console.writeline("請輸入數字");
}
語句塊的知識
{}括起來的邏輯語句是一個代碼塊,註意變數在代碼塊中的生命周期
//語句塊體悟
//語句塊引起的變數的生命周期
//語句塊中聲明的變數只能在當前的語句塊中使用
//體會當下代碼在編譯器中的報錯意義!
int a = 1;
int b = 2;
{
int b = 3;
Console.WriteLine(a);
Console.WriteLine(b);
}
Console.WriteLine(b);
int a = 5;
if (a > 3)
{
int b = 0;
++b;
b += a;
}
Console.WriteLine(b);
Switch 語句
當判斷條件過多時候,使用if elseif 來進行判斷時,需要寫多條elseif,顯得冗長繁瑣,為此體現出switch分支語句的優勢--清晰明瞭
//switch語句
int a=2;
switch(a)
{
//這個條件一定是常量
case 1:
Console.WriteLine("a等於1");
break;//每個條件之間通過break隔開
case 2:
Console.WriteLine("a等於2");
break;
case 3:
Console.WriteLine("a等於3");
break;
default://可省略 預設選擇條件
Console.WriteLine("什麼條件都不滿足,執行default中的內容");
break;
}
string str = "123";
switch (str)
{
case "123":
Console.WriteLine("等於123");
break;
case "234":
Console.WriteLine("等於234");
break;
}
//貫穿使用
//當一個變數同時滿足多個條件可以做多條件的“合併”判斷
//給變數對號找家--如果找到相關的可以接受的便會直接匹配,
//否則會繼續匹配下一條case條件
string name="暢知";
switch (name)
{
//只要是符合三個條件之一就行
case "暢知":
case "TonyChang":
case "小明":
Console.WriteLine("是個帥哥!");
break;//break有阻斷作用
case "小玉":
case "莉莉":
Console.WriteLine("是個美女!");
break;
default:
break;
}
switch使用練習:學生成績的分檔
//輸入學生的考試成績,如果
//成績 >= 90:A
//90 > 成績 >= 80:B
//80 > 成績 >= 70:C
//70 > 成績 >= 60:D
//成績 < 60:E
//(使用switch語法完成)
//最後輸出學生的考試等級
try
{
Console.WriteLine("請輸入學生成績");
int cj = int.Parse(Console.ReadLine());
// 取它的 十位數
// 100 / 10 = 10
// 99 / 10 = 9
// 84 / 10 = 8
// 74 / 10 = 7
// cj = cj / 10;
cj /= 10;
switch (cj)
{
case 10:
case 9:
Console.WriteLine("你的成績是A");
break;
case 8:
Console.WriteLine("你的成績是B");
break;
case 7:
Console.WriteLine("你的成績是C");
break;
case 6:
Console.WriteLine("你的成績是D");
break;
default:
Console.WriteLine("你的成績是E");
break;
}
}
catch
{
Console.WriteLine("請輸入數字");
}
迴圈語句
迴圈可以使滿足迴圈執行條件的邏輯反覆執行。註意不要隨便寫出死迴圈。
while迴圈
//while迴圈
int a=1;
while(a<10)//迴圈條件
{
++a;
}
Console.WriteLine(i);
//迴圈的嵌套使用
int a1=1;
int b=0;
while (a1 < 10)
{
++a1;
while (b < 10)
{
++b;
}
}
//break的使用
//break可以是執行邏輯點跳出while語句塊
while (true)
{
Console.WriteLine("break之前的代碼");
break;
Console.WriteLine("break之後的代碼");
}
Console.WriteLine("迴圈外的代碼");
//continue的使用
//使執行邏輯點跳出當前的迴圈內容
//直接進入下一次的迴圈判斷執行
//列印1到20之間的 奇數
int index = 0;
while(index < 20)
{
++index;
//什麼樣的數是奇數
//不能被2整除的數 ——> %
if (index % 2 == 0)
{
continue;//跳過偶數情況
}
Console.WriteLine(index);
}
練習--找出100內所有素數列印
//找出100內所有素數並列印。
int num = 2;
while( num < 100 )
{
// 用想要判斷是素數的數 從2開始 去取餘 如果 中途就整除了 證明不是素數
// 如果 累加到和自己一樣的數了 證明是素數
int i = 2;
while( i < num )
{
//判斷是否整除
if( num % i == 0 )
{
break;
}
++i;
}
if( i == num )
{
Console.WriteLine(num);
}
++num;
}
doWhile迴圈
do……while語句與while迴圈差不多,只不過這個家伙太魯莽,先斬後奏,不管如可,先執行代碼塊,再進行條件判斷
//do while迴圈簡單應用
string userName = "";
string passWord = "";
bool isShow = false;
do
{
//這句代碼 第一次 肯定不能執行
if (isShow)
{
Console.WriteLine("用戶名或密碼錯誤,請重新輸入");
}
//迴圈輸入
Console.WriteLine("請輸入用戶名");
userName = Console.ReadLine();
Console.WriteLine("請輸入密碼");
passWord = Console.ReadLine();
isShow = true;
} while (userName != "暢知" || passWord != "666");
for迴圈
for迴圈是最常使用的一種迴圈語句,
//for迴圈
for( int i = 10; i >= 0; i-- )
{
Console.WriteLine(i);
}
//每個空位 可以按照規則進行書寫
//註意:分號不可以省去,即便沒有變數聲明也不可以省!
//第一個空位 聲明變數 可以同時聲明多個
//第二個空位 判斷條件 返回值為bool
//第三個空位 對變數的操作
for( int i = 0, j = 0; i < 10 && j < 0; ++i, j = j + 1)
{
}
//for迴圈的特殊使用
// for迴圈可以寫死迴圈
//for( ; ; )
//{
// Console.WriteLine("for迴圈的死迴圈");
//}
int k = 0;
for(; k < 10; )
{
++k;//k++, k += 1;
}
//for( k = 0; ; ++k )
//{
// if( k >= 10 )
// {
// break;
// }
//}
for迴圈的經典練習:
一般都是找要執行邏輯塊執行結果和迴圈條件變數之間的對應關係
//在控制臺上輸出如下10 * 10的空心星型方陣
//**********
//* *
//* *
//* *
//* *
//* *
//* *
//* *
//* *
//**********
//行
for (int j = 0; j < 10; j++)
{
//列
for (int i = 0; i < 10; i++)
{
//列 如果是 第1行和最後1行 那麼 內層列迴圈 都列印星號
// 按照 **********的規則列印
if (j == 0 || j == 9)
{
Console.Write("*");
}
//否則 就是 按照* *的規則列印
else
{
if (i == 0 || i == 9)
{
Console.Write("*");
}
else
{
Console.Write(" ");
}
}
}
Console.WriteLine();
}
//在控制臺上輸出如下10行的三角形方陣
// * 1 1 -> 2i - 1 9 10 - i
// *** 2 3 -> 2i - 1 8 10 - i
// ***** 3 5 7 10 - i
// ******* 4 7 6 10 - i
// ********* 5 9 5
// *********** 6 11 4
// ************* 7 13 3
// *************** 8 15 2
// ***************** 9 17 1
//******************* 10 19 0 10 - i
//行
for (int i = 1; i <= 10; i++)
{
//列印空格的列
for (int k = 1; k <= 10 - i; k++)
{
Console.Write(" ");
}
//列印星號的列
for (int j = 1; j <= 2*i-1; j++)
{
Console.Write("*");
}
Console.WriteLine();
}
//在控制臺上輸出九九乘法表
for (int i = 1; i <= 9; i++)
{
//1 1 X 1 = 1 空行
//2 1 X 2 = 2 2 X 2 = 4 空行
//3 1 X 3 = 3 2 X 3 = 6 3 X 3 = 9 空行
for (int j = 1; j <= i; j++)
{
Console.Write("{0}X{1}={2} ", j, i, i * j);
}
Console.WriteLine();
}
//求1~100之間所有偶數的和
int sum = 0;
for (int i = 1; i <= 100; i++)
{
//判斷是否是偶數 是否能整除2
if( i % 2 == 0 )
{
sum += i;
}
}
for (int i = 2; i <= 100; i += 2)
{
sum += i;
}
Console.WriteLine(sum);