控制傳遞
控制傳遞
在數據通信系統中,通過通信線路進行計算機和數據終端的符號情報的輸送,因為要將情報進行準確的輸送,必須要進行各種控制。有輸入輸出控制、線路控制、同步、錯誤控制及傳輸控制順序,這些總稱為控制傳遞(Control-transfer)。
在數據通信系統中,通過通信線路進行計算機和數據終端的符號情報的輸送,因為要將情報進行準確的輸送,必須要進行各種控制。有輸入輸出控制、線路控制、同步、錯誤控制及傳輸控制順序,這些總稱為傳輸控制。輸入輸出控制是為了使數據室內裝置的輸入裝置和輸出裝置的控制,鍵盤、顯示器、印表機等各種輸入輸出及其的控制。
線路控制是相對於交換線路的連接、切斷的控制及MODEM等線路終端裝置的控制。
傳輸控制裝置和通信控制裝置間的同步是規定在收、發信間,連續的收、發信的符號系列具一定約束時,在接收側從符號系列組合文字等的有意的情報的控制方式。把這稱為字元同步。
出錯控制,即在通信線路中不可避免的雜訊和瞬時產生的符號錯誤。當情報錯誤送出時,可以測出錯誤的情報,或者為了訂正錯誤進行控制。這裡有垂直奇偶性檢測,循環檢測(ORO)方式等。
傳輸控制程序控制,假設用電話傳達人際事情,要想和對方交談,首先必須接通電話,然後談話,終了以後切斷電話。為此,首先確認對方,自報本人姓名,然後談事情,回答查明對方是否理解,並作別的如問候切斷電話類似的程序。即有線路進行連接的程序,確認對方的程序,數據傳輸確認響應的程序,通信結束通知的程序,切斷線路程序等等,還規定了收、發信數據格式和規定了傳輸控制字元等。
在數據傳輸的初期階段是採用紙帶和鍵盤印表機為傳輸主體進行,推進了冗餘度少的,希望對方沒有錯誤傳輸數控作為程序的基本方式控制程序的探討,用ISO(國際標準化機構)TC97第6小委員會(TC6)的標準化進行。
此後,由於計算機數據通信等的出現,數據通信就是一種高速指向效率的傳輸控制方式的同時,也成為尋求適用於音響結合型的攜帶型簡單終端控制方式的前提。現已開發了各種傳輸控制程序。
在其他終端機中,也存在數據通信系統特性結合的變形程序。
基本方式控制程序是使用10個傳輸控制字元,將各自規定的情報信息字組,在2個裝置間發信、接收。
使用本程序的前提條件如下:
(1)作為傳輸數據的原則是JISO6220情報交換用7位代碼。
(2)傳輸控制功能使用10個傳輸控制字元實行。
(3)數據傳輸形式可用串聯傳輸,也可用並聯傳輸,數據傳輸速度也無規定。另外,字元同步可以用啟停同步或同步方式。
(4)傳輸方向是適用於以單向傳輸位基本的,由相互監視決定的單向傳輸和由相互監視決定的雙向相互傳輸。
在數據傳輸中,由於線路的雜訊和瞬斷等的擾亂,不可避免發生錯誤。因此,在數據傳輸中,必須對數據室內裝置及通信控制裝置進行錯誤控制。該方式依靠數據符號或符號本身的邏輯性進行傳輸,根據接收的符號不平衡的邏輯性檢測錯誤,進行訂正。把該檢測、訂正叫做錯誤控制。
在低速基本程序中,一般使用的是垂直/水平奇偶性校驗方式;在2400bit/s以上的數據傳輸中,使用循環符號的校驗方式。
返送校對方式是在接收側把接收的信號照原樣返送發信側,在發信側對照發信的情報和返送的情報,檢測錯誤發生的方式。用發信機在和對方側發信的同時,臨時存儲發信情報。在接收側,輸出接收情報的同時,直接向發信側反饋同樣的信息。在發信側,則把剛存儲的情報和返送的情報對照,判定有無錯誤。根據判定的結果,送出下次情報。事先知道送出的情報有錯誤時,等於取消送出情報。這時,在發信側存儲的發信情報,由於反饋情報需要時間,根據返送情報單位不同,分為字元返送對照方式和程序返送對照方式。
下面以Swift控制傳遞語句為例介紹控制傳遞語句。
通過無條件地把控制權從一片代碼傳遞到另一片代碼,控制傳遞語句能夠改變代碼執行的順序。Swift 提供四種類型的控制傳遞語句:break語句、continue語句、fallthrough語句和return語句。
控制傳遞語句(Control Transfer Statement) 語法
• 控制傳遞語句→break語句
• 控制傳遞語句→continue語句
• 控制傳遞語句→fallthrough語句
• 控制傳遞語句→return語句
break語句用於終止循環或switch語句的執行。使用break語句時,可以只寫break這個關鍵詞,也可以在break後面跟上標籤名(label name),像下面這樣:
break breaklabel name |
當break語句後面帶標籤名時,可用於終止由這個標籤標記的循環或switch語句的執行。
而當只寫break時,則會終止switch語句或上下文中包含break語句的最內層循環的執行。
在這兩種情況下,控制權都會被傳遞給循環或switch語句外面的第一行語句。
continue語句用於終止循環中當前迭代的執行,但不會終止該循環的執行。使用continue語句時,可以只寫continue這個關鍵詞,也可以在continue後面跟上標籤名(label name),像下面這樣:
continue continuelabel name |
當continue語句後面帶標籤名時,可用於終止由這個標籤標記的循環中當前迭代的執行。
而當只寫break時,可用於終止上下文中包含continue語句的最內層循環中當前迭代的執行。
在這兩種情況下,控制權都會被傳遞給循環外面的第一行語句。
在for語句中,continue語句執行后,increment表達式還是會被計算,這是因為每次循環體執行完畢后increment表達式都會被計算。
fallthrough語句用於在switch語句中傳遞控制權。fallthrough語句會把控制權從switch語句中的一個 case 傳遞給下一個 case。這種傳遞是無條件的,即使下一個 case 的模式與switch語句的控制表達式的值不匹配。
fallthrough語句可出現在switch語句中的任意 case 里,但不能出現在最後一個 case 分支中。同時,fallthrough語句也不能把控制權傳遞給使用了可選綁定的 case 分支。
return語句用於在函數或方法的實現中將控制權傳遞給調用者,接著程序將會從調用者的位置繼續向下執行。
使用return語句時,可以只寫return這個關鍵詞,也可以在return後面跟上表達式,像下面這樣:
return returnexpression |
當return語句後面帶表達式時,表達式的值將會返回給調用者。如果表達式值的類型與調用者期望的類型不匹配,Swift 則會在返回表達式的值之前將表達式值的類型轉換為調用者期望的類型。
而當只寫return時,僅僅是將控制權從該函數或方法傳遞給調用者,而不返回一個值。(這就是說,該函數或方法的返回類型為Void或())。