當前位置:編程學習大全網 - 編程語言 - VC#2005快速入門之使用do語句

VC#2005快速入門之使用do語句

 while和for語句都在循環開始的時候測試它們的布爾表達式 這意味著假如在首次測試時 布爾表達式就求值為false 那麽循環主體壹次都不會運行 do語句則不同 它的布爾表達式是在每次重復之後求值的 所以主體至少會執行壹次

 do語句的語法如下(不要忘記最後的分號)

 do? statement? while (booleanExpression);

 如果循環主體由多個語句構成 請使用壹個語句塊 下面是在控制臺上輸出 ~ 的那個例子的do語句版本

 int i = ;? do? {?Console WriteLine(i);?i++;? }? while (i != );

 break和continue語句

 在前文我們曾用break語句來跳出switch語句 除此之外 還可以使用break語句來跳出壹個循環 執行break之後 系統會立即終止循環 並從循環之後的第壹個語句繼續執行 在這種情況下 循環的 更新 和 繼續 條件都不會重新判斷

 與此相反 continue語句會造成當前循環結束 並立即開始下壹次循環(在對布爾表達式進行重新求值之後) 下面是在控制臺上輸出 ~ 的那個例子的另壹個版本 這壹次將使用break和continue語句

 int i = ;

 while (true)? {?Console WriteLine( continue + i);?i++;?if (i != )? continue;?else? break;? }

 這段代碼看起來讓人非常難受 許多編程指南都建議小心使用continue 或者根本不要使用它 否則很容易造成難以理解的代碼 continue的行為也令人捉摸不定 例如 假如在壹個for語句中執行continue 那麽會在運行了for語句的 更新 部分之後 才開始下壹次循環

 在下面的例子中 我們將寫壹個do語句來將壹個數字轉換成字符串形式

 ·使用do語句

  在Visual Studio 中打開DoStatement項目 它位於My Documents文件夾下的\Microsoft Press\Visual CSharp Step by Step\Chapter \DoStatement子文件夾中

 選擇 調試 | 開始執行(不調試)

 Visual Studio 將開始生成並運行Windows應用程序

 應用程序將顯示壹個窗體 其中包含兩個文本框和壹個Show Steps(顯示步驟)按鈕 在上方的文本框中輸入壹個正數(我們使用的算法還不支持負數) 然後單擊Show Steps按鈕 下方的文本框就會顯示創建這個數字的字符串形式所需的步驟

 註意 這個簡單的例子展示了如何使用do循環將數字轉換成字符串 但要註意壹點 Framework提供了Convert ToString方法來做同樣的事情 在自己的應用程序中執行類似任務時 應該使用該方法

  作為壹個例子 請在上方的文本框中輸入 然後單擊Show Steps按鈕

 在下方的文本框中 將顯示創建 的字符串形式所經歷的步驟 如圖 所示

 圖 單擊Show Steps按鈕之後將顯示具體步驟

  關閉窗口 返回Visual Studio 編程環境

  在 代碼和文本編輯器 窗口中顯示Form cs的代碼

 找到showSteps_Click方法 該方法會在用戶單擊了Show Steps按鈕之後開始運行

  該方法包含以下語句

 int amount = System Int Parse(number Text);

 steps Text = ;

 string current = ;

 do

 {

 int digitCode = + amount % ;

 char digit = Convert ToChar(digitCode);

 current = digit + current;

 steps Text += current + \r\n ;

 amount /= ;

 }

 while (amount != );

 註意 \r代表壹個回車符 在多行文本框控件中輸出文本時 需要同時輸出壹個回車符和壹個換行符 才能跳到下壹行 並使光標定位到行首 否則 以後輸出的文本將出現在同壹行上

 第壹個語句使用System Int 類的Parse方法 將number文本框的Text屬性中存儲的字符串值轉換成int值

 int amount = System Int Parse(number Text);

 第二個語句清除下方的文本框(稱為steps)中顯示的文本 這壹次的做法是將Text屬性設為壹個空字符串

 steps Text = ;

 第三個語句聲明壹個名為current的字符串變量 並把它初始化為空字符串

 string current = ; 這個方法真正的工作是由do語句來執行的 它從第 個語句開始

 do? { }? while (amount != );

 我們將利用整數算術操作符和取模操作符 使用 來反復除amount變量 每次獲得的余數都是正在構造的字符串的下壹個數位 最終 amount將縮減為 值 循環將結束 註意 循環主體至少會執行壹次 假如用戶輸入的就是數字 這個 至少執行壹次 的行為就正是我們所需要的

 do循環中的第 個語句是

 int digitCode = + amount % ;

 該語句聲明壹個名為digitCode的int變量 並把它初始化為以下表達式的結果

  + amount %

 這個表達式需要稍微解釋壹下! 的值是指字符 的值 在Windows使用的字符集中 該字符等於整數值 (每個字符都有它自己的惟壹的字符代碼 這是壹個整數值) 類似地 的字符代碼是 的字符代碼是 以此類推

 amount % 的值是用 來除amount之後得到的余數 例如 假如amount包含的值是 那麽 % 的結果是 ( 除以 的結果是商 余 ) 因此 假如amount等於 那麽表達式 + amount % 就等同於 + 結果是 這是字符 的字符代碼 要註意的是 +操作符在這裏執行了壹次隱式強制類型轉換 它將 轉換成整數值 使整個表達式能夠求值

 do循環中的第 個語句是

 char digit = Convert ToChar(digitCode);

 該語句聲明了壹個名為digit的char變量 並把它初始化成Convert ToChar(digitCode)這個方法調用的結果 調用該方法 將返回與參數指定的字符代碼對應的壹個字符 換言之 Convert ToChar( + )的求值結果就是

 do循環中的第 個語句是

 current = digit + current;

 該語句將剛才計算出來的字符變量digit附加到字符串current之前 註意 該語句不能替換為current += digit 否則就會將digit附加到current之後

 do循環中的第 個語句是

 steps Text += current + \r\n ;

 該語句的作用是在Steps文本框的Text屬性中附加另壹個要顯示的步驟

 do循環中的最後壹個語句是

 amount /= ;

 該語句等同於amount = amount / ; 如果amount的值是 那麽在運行上述語句之後 amount的值將變成 註意 每壹次重復do語句 都會從amount中移除最後壹個數位 並將那個數位附加到current字符串之前

 在最後壹個練習中 將使用Visual Studio 調試器來逐步執行上述do語句 以幫助妳理解它的工作過程

 ·逐步執行do語句

  在 代碼和文本編輯器 窗口中找到showSteps_Click方法

  將鼠標移至showSteps_Click方法的第壹個語句

 第壹個語句是

 int amount = System Int Parse(number Text);

  右擊第壹個語句的任何地方 從彈出菜單中選擇 運行到光標處

 Visual Studio 將生成並運行應用程序

  窗體出現後 在上方的文本框中輸入 然後單擊Show Steps按鈕

 程序將暫停運行 Visual Studio 將進入調試模式 代碼和文本編輯器 窗口左側將出現壹個黃箭頭 標記出當前語句

  如果 調試 工具欄不可見 請顯示它(選擇 視圖 | 工具欄 | 調試 ) 在 調試 工具欄上 請單擊 斷點 按鈕旁邊的下拉列表箭頭

 隨後會打開如圖 所示菜單

 圖 單擊 斷點 按鈕旁邊的下拉列表箭頭

  從這個菜單中選擇 局部變量

 隨後會打開 局部變量 窗口 其中顯示了當前方法中的局部變量的名稱 值和類型 其中的amount是局部變量 註意 amount的值目前是 如圖 所示

  單擊 調試 工具欄上的 逐語句 按鈕

 調試器將運行當前語句

 int amount = System Int Parse(number Text);

 在 局部變量 窗口中 amount的值將變成 黃箭頭會指向下壹個語句

  繼續單擊 逐語句 按鈕

 調試器將運行以下語句

 steps Text = ;

 該語句不影響 局部變量 窗口的顯示 因為steps是窗體的壹個字段 而不是壹個局部變量 黃箭頭繼續指向下壹個語句

 圖 局部變量 窗口

  繼續單擊 逐語句 按鈕

 調試器將運行以下語句

 string current = ;

 黃箭頭將指向do循環的起始大括號

  繼續單擊 逐語句 按鈕

 黃箭頭將指向do循環中的第壹個語句 do循環包含它自己的兩個局部變量 即digitCode和digit 註意 這些局部變量已經在 局部變量 窗口中顯示 而且digitCode的值為

  繼續單擊 逐語句 按鈕

 調試器將運行以下語句

 int digitCode = + amount % ;

 在 局部變量 窗口中 digitCode的值將變成 這是由於表達式amount % 的結果為 (amount的值為 ) 而 的字符代碼是 ( + )

  繼續單擊 逐語句 按鈕

 調試器將運行以下語句

 char digit = Convert ToChar(digitCode);

 在 局部變量 窗口中 digit的值將變成 註意在 局部變量 窗口中 char值是同時使用字符代碼值(本例是 )和對應的字符形式(本例是 )來顯示的 黃箭頭將指向do循環的下壹個語句

 註意 在 局部變量 窗口中 current變量的值是 (即為空)

  繼續單擊 逐語句 按鈕

 調試器將運行以下語句

 current = current + digit;

 在 局部變量 窗口中 current變量的值將變成

  繼續單擊 逐語句 按鈕

 調試器將運行以下語句

 steps Text += current + \r\n ;

 該語句將在steps文本框中顯示文本 並後跟壹個回車符和壹個換行符 確保以後的輸出將從文本框的下壹行開始

 在 局部變量 窗口中 amount的值仍然為

  繼續單擊 逐語句 按鈕

 調試器將運行以下語句

 amount /= ;

 在 局部變量 窗口中 amount的值將變成 黃箭頭指向do循環的結束大括號

  繼續單擊 逐語句 按鈕

 黃箭頭將指向while語句

  繼續單擊 逐語句 按鈕

 調試器將運行以下語句

 while (amount != );

 amount的值是 表達式 != 將求值為true 所以將進行下壹次循環 黃箭頭將跳回do循環的起始大括號

  繼續單擊 逐語句 按鈕

 黃箭頭將指向do循環中的第壹個語句

  再單擊 逐語句 按鈕 次 觀察 局部變量 窗口中的局部變量的值發生的變化 在 局部變量 窗口中 amount的值最終將變成 而current的值變成

 黃箭頭將指向do循環的循環繼續條件

 while (amount != );

 amount的值目前為 所以表達式amount != 求值為false do循環應該終止

  繼續單擊 逐語句 按鈕

 調試器將運行以下語句

 while (amount != );

 如同我們預期的那樣 dot循環終止 黃箭頭移至showSteps_Click方法的結束大括號

  單擊 調試 工具欄上的 繼續 按鈕

 窗體將出現 並顯示為了創建 的字符串形式所經歷的 個步驟 和

  關閉窗體 返回Visual Studio 編程環境

lishixinzhi/Article/program/net/201311/11749

  • 上一篇:安川驅動AC9報警
  • 下一篇:電腦學習網站
  • copyright 2024編程學習大全網