C語言case字句有什么作用,switch?case?語句的使用規則

【規則1-21】按字母或數字順序排列各條case語句。

如果所有的case語句沒有明顯的重要性差別,那就按A-B-C或1-2-3等順序排列case

語句。這樣做的話,你可以很容易的找到某條case語句。比如:

switch(variable)

{

case?A:

//program?code

break;

case?B:

//program?code

break;

case?C:

//program?code

break;

default:

break;

}

【規則1-22】把正常情況放在前面,而把異常情況放在后面。

如果有多個正常情況和異常情況,把正常情況放在前面,并做好注釋;把異常情況放在

后面,同樣要做注釋。比如:

switch(variable)

{

///

//正常情況開始

case?A:

//program?code

break;

case?B:

//program?code

break;

//正常情況結束

//

//異常情況開始

case?-1:

//program?code

break;

//異常情況結束

//

default:

break;

}

【規則1-23】按執行頻率排列case語句

把最常執行的情況放在前面,而把最不常執行的情況放在后面。最常執行的代碼可能

也是調試的時候要單步執行的最多的代碼。如果放在后面的話,找起來可能會比較困難,而

放在前面的話,可以很快的找到。

【規則1-24】簡化每種情況對應的操作。

使得與每種情況相關的代碼盡可能的精煉。case語句后面的代碼越精煉,case語句的結

果就會越清晰。你想想,如果case語句后面的代碼整個屏幕都放不下,這樣的代碼誰也難

看得很清晰吧。如果某個case語句確實需要這么多的代碼來執行某個操作,那可以把這些

操作寫成一個或幾個子程序,然后在case語句后面調用這些子程序就ok了。一般來說case

語句后面的代碼盡量不要超過20行。

【規則1-25】不要為了使用case語句而刻意制造一個變量。

case語句應該用于處理簡單的,容易分類的數據。如果你的數據并不簡單,那可能使用ifelse

if的組合更好一些。為了使用case而刻意構造出來的變量很容易把人搞糊涂,應該避免

這種變量。比如:

char?action?=?a[0];

switch?(action)

{

case?‘c’:

fun1();

break;

case?‘d’:

break;

default:

break;

}

這里控制case語句的變量是action。而action的值是取字符數組a的一個字符。但是這

種方式可能帶來一些隱含的錯誤。一般而言,當你為了使用case語句而刻意去造出一個變

量時,真正的數據可能不會按照你所希望的方式映射到case語句里。在這個例子中,如果

用戶輸入字符數組a里面存的是“const”這個字符串,那么case語句會匹配到第一個case

上,并調用fun1()函數。然而如果這個數組里存的是別的以字符c開頭的任何字符串(比

如:“col”,“can”),case分支同樣會匹配到第一個case上。但是這也許并不是你想要的結

果,這個隱含的錯誤往往使人抓狂。如果這樣的話還不如使用if-else?if組合。比如:

if(0?==?strcmp(“const”,a))

{

fun1();

}

else?if

{

}

【規則1-26】把default子句只用于檢查真正的默認情況。

有時候,你只剩下了最后一種情況需要處理,于是就決定把這種情況用default子句來

處理。這樣也許會讓你偷懶少敲幾個字符,但是這卻很不明智。這樣將失去case語句的標

號所提供的自說明功能,而且也喪失了使用default子句處理錯誤情況的能力。所以,奉勸

你不要偷懶,老老實實的把每一種情況都用case語句來完成,而把真正的默認情況的處理

交給default子句。__

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/534568.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/534568.shtml
英文地址,請注明出處:http://en.pswp.cn/news/534568.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

c語言怎樣用格式化文件存儲,如何用格式化的方式讀寫文件

對格式會來說,C語言的格式讀寫文件是很有要求的,在前面我們已經講解了如何去進行字符的輸入輸出,但事實真相,數據的類型是很豐富的,而且大家已經熟悉了用printf和scanf函數進行格式化的輸入輸出,他們是向終…

輸出26個英文字母c語言,菜鳥求助,寫一個隨機輸出26個英文字母的程序

該樓層疑似違規已被系統折疊 隱藏此樓查看此樓#include #include // 用srand、rand函數了#include // 用time函數了#define LEN 32// 產生min~max的隨機數 (包含min和max)// rand函數產生0 ~ RAND_MAX 的隨機數// 一般上不同編譯器要求 RAND_MAX 的值(至少)為 32767#define RAN…

二階矩陣乘法C語言,c語言矩陣相乘

該樓層疑似違規已被系統折疊 隱藏此樓查看此樓程序清單#include&nbspint&nbspmain(void){&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbspchar&nbsp&nbsp&nbsp&nbspa[2][3];&nbsp&nbsp&nbsp&nbsp&nbsp…

c語言dll創建線程,教大家寫一個遠程線程的DLL注入,其實還是蠻簡單的……………………...

該樓層疑似違規已被系統折疊 隱藏此樓查看此樓然后新建一個win32 application 的工程 新建c source file 寫入:#include#includeint WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nShowCmd){char DllName[MAX_PATH]"C:\\P…

linux下qq怎么截圖,ubuntu 12.04使用QQ截圖安裝教程

相信用過linux系統的朋友都知道,linux下的截圖軟件是在不咋的。雖然系統本身有帶截圖工具,但是卻苦于沒有辦法在截下來的圖片上作畫圈、寫文字說明等動作。應該有不少朋友也是從windows系統下轉到linux下做開發的,不知道大家對QQ截圖這個軟件…

android對象申明,Kotlin中的對象表達式和對象聲明的具體使用

Kotlin的對象表達式與Java中的匿名內部類的主要區別:匿名內部類只能指定一個父類型,但對象表達式可以指定0~N個膚類型。一、對象表達式對象表達式的語法格式如下:object [: 0~N個父類型]{//對象表達式的類體部分}對象表達式還有如下規則&…

android+聯系服務器時間,android配置時間服務器+亞洲主要的授時服務器

我們知道,Android是通過連接指定的ntpServer來獲取網絡時間,而不同的服務器帶來的延遲也不盡相同,通常情況下,我們自然是期望盡快獲取時間,那么我們就需要對ntpServer有一定的篩選,尤其是在選擇默認的ntpSe…

android 獲取設備的mac地址,Android編程獲取設備MAC地址的實現方法

本文實例講述了Android編程獲取設備MAC地址的實現方法。分享給大家供大家參考,具體如下:/*** 獲取設備的mac地址** param ac* param callback* 成功獲取到mac地址之后會回調此方法*/public static void getMacAddress(final Activity ac, final SimpleCa…

android 資源如何下沉,關于Android業務模塊下沉的一些實踐及總結

此文已由作者徐銘陽授權網易云社區發布。歡迎訪問前言最近在做需求過程中,一些類似學校選擇、城市選擇等業務相關模塊想單獨抽離出來,遇到一些諸如模塊管理、通信方面的問題來背景最近有一個需求是學校列表,沒錯,就是我們平時總見…

android sqlite存儲數據,Android之SQLite數據存儲

關于SQLite的出生長大和壯大,這里就略去了,只記幾點比較重要的用法:SQLite所支持的數據類型:SQLite,SQLite3支持 NULL、INTEGER、REAL(浮點數字)、TEXT(字符串文本)和BLOB(二進制對象)數據類型,雖然它支持的…

android gridview滾動條位置,Android GridView滾動到指定位置

當一個列表項目很多,并且每個項目可以進入到其它Activity或者Fragment時,保存之前列表的位置是一個比較不錯的功能,今天研究了一下怎么保存瀏覽位置,發現GridView和它的父類中有4個相關的方法:public void smoothScrol…

android studio 跨進程,Android IPC機制(三)在Android Studio中使用AIDL實現跨進程方法調用...

本文首發于微信公眾號「后廠技術官」在上一篇文章Android IPC機制(二)用Messenger進行進程間通信中我們介紹了使用Messenger來進行進程間通信的方法,但是我們能發現Messenger是以串行的方式來處理客戶端發來的信息,如果有大量的消息發到服務端&#xff0…

nubia ui 5.0 android,流暢度爆棚 搭Android 5.0系統新機一覽

近期各品牌新機都不少,而且90%以上都是Android系統的手機,可見安卓手機的主導地位仍在上升。而在系統層次,Android 5.0已經逐步開始普及,近期上市新機百分百均采用了這一系統,值得一提的是定制不再“深度”&#xff0c…

signature=4d4ce610ff2d4a5f2093452c24b70492,Reading Chromatin Signatures

摘要:The article cites a study which uses a combination of chromatin immunoprecipitation and microarray analysis to explore the histone modifications, transcription-factor binding and nucleosome density in 30 megabytes of human genome. It states…

html 百分比正方形,css實現未知寬度的正方形需求

今天群里有哥們問了一下,百分比寬度的正方形如何用css實現。其實就是不定寬的正方形如何用css實現。第一個方法利用圖片的等比例縮放,用base64寫一個1*1的透明png圖片,寬度100%,這樣容器就自動被撐成一個正方形,demo如…

html引用本地圖片不能是桌面的,Img標簽與本地文件:/// URL不顯示在Microsoft Edge Web瀏覽器...

在我的桌面應用程序中,我創建了一個臨時HTML文件(旨在讓用戶打印報告),然后通過默認顯示網頁瀏覽器。這個HTML文件保存在一個臨時文件夾,例如:C:/Users/UserName/AppData/Local/TempImg標簽與本地文件:/// URL不顯示在…

你用計算機做過什么事情,他偷偷干了什么?(電腦)

我一本正經地胡說一下吧。控制面板→管理工具”中找到的“事件查看器”,通過它可以了解系統的喜怒哀樂和一言一行事件查看器相當于一本厚厚的系統日志,可以查看關于硬件、軟件和系統問題的信息,也可以監視Windows XP的安全事件,下…

怎么用計算機算立方數,計算器的使用方法

計算器人們都很熟悉,尤其是從事數據行業的人更要懂得如何使用計算器,那么外行人士想要正確使用計算器該怎么辦呢?今天小編就來為您解圍。計算器包括標準型和科學型兩種,其中標準型使用方法如下:1、鍵入數字時,按下相應…

有計算機知識,計算機基本理論基礎知識總匯

計算機基本理論基礎知識總匯1、計算機按照數據處理規模大小可以分為(巨型計算機)(大型計算機)(小型計算機)(微型計算機)(工作站)等2、計算機的硬件主要由(控制器)(運算器)(存儲器)(輸入輸出設備)以及電源等硬件組成。3、計算機主機是(控制器)(運算器)(存儲器)的總稱&#xff0c…

麻省理工學院計算機科學與工程博士,2020年麻省理工學院博士讀幾年

麻省理工學院(Massachusetts Institute of Technology),簡稱麻省理工(MIT),坐落于美國馬薩諸塞州劍橋市(大波士頓地區) ,是世界著名私立研究型大學、被譽為"世界理工大學之最"。麻省理工學院博士讀幾年麻省理工學院博士一般讀5年&a…