开关语句、循环语句、goto
生活随笔
收集整理的這篇文章主要介紹了
开关语句、循环语句、goto
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
復(fù)習(xí):
1、數(shù)據(jù)類型:signed char 1 %hhd -128~127signed short 2 %hd -32768~32767signed int 4 %d 正負(fù)20億signed long 4 %ldsigned long long 8 %lld 9天開頭的19位數(shù)unsigned char 1 %hhu 0~255unsigned short 2 %hu 0~65535unsigned int 4 %u 0~40億unsigned long 4 %lu unsigned long long 8 %llu 1開頭的20位數(shù)float 4 %fdouble 8 %lflong double 12 %LF 2、變量取名規(guī)則1、由數(shù)字 字母 下劃線組成2、不能以數(shù)字開頭3、不能與關(guān)鍵字重名4、見名知義 3、變量的輸入輸出printf 提示信息+占位符+變量名scanf 占位符+變量地址%nd %0nd %-nd %n.mf 3、運(yùn)算符/ % 除數(shù)不能0,否則會(huì)產(chǎn)生浮點(diǎn)數(shù)例外,核心已轉(zhuǎn)儲(chǔ)錯(cuò)誤== 變量盡量放在右邊++/-- 一行代碼中不要過多使用&& || 具有短路特性A?B:C 不能出現(xiàn)流程控制語句 4、類型轉(zhuǎn)換自動(dòng)類型轉(zhuǎn)換:不同類型的數(shù)據(jù)會(huì)先轉(zhuǎn)換成相同類型的數(shù)據(jù)才能進(jìn)行運(yùn)算。轉(zhuǎn)換規(guī)則(以不丟失數(shù)據(jù)為基礎(chǔ),適當(dāng)犧牲一些空間):1、字節(jié)少向字節(jié)多轉(zhuǎn)2、相同字節(jié)數(shù)有符向無符轉(zhuǎn)3、整型向浮點(diǎn)型轉(zhuǎn)強(qiáng)制類型轉(zhuǎn)換:(目標(biāo)類型)數(shù)據(jù) , 可能會(huì)造成數(shù)據(jù)丟失,慎重使用。一、開關(guān)語句
switch
switch(n)//運(yùn)算結(jié)果必須是整型 {case val: // val必須是整常量 ,如果val等于n,則打開執(zhí)行開關(guān)... break; // 關(guān)閉執(zhí)行開關(guān)注意:如果每個(gè)cast后都有break,就形成了分支結(jié)構(gòu)。default:// 如果所有的case都沒有匹配成功則打開執(zhí)行開關(guān) } case a ... b: 判斷一個(gè)范圍,此為GNU編譯器獨(dú)有的語法,不建議使用。練習(xí)1:輸入一個(gè)月份,判斷季節(jié)。
123 春天
456 夏天
789 秋天
10 11 12 冬天
other 輸入的月份有誤
練習(xí)2:輸入一個(gè)月份,判斷該月有多少天,忽略閏年問題。
#include <stdio.h> #include <stdint.h>int main(int argc,const char* argv[]) {uint8_t month = 0;printf("請(qǐng)輸入一個(gè)月份:");scanf("%hhu",&month);if(month < 1 || month > 12){printf("輸入的月份有誤!\n");return 0;}switch(month){case 2: printf("28天\n"); break;case 4: case 6:case 9:case 11: printf("30天\n"); break;default: printf("31天\n"); break;} }for循環(huán)語句:
循環(huán)就是讓一段代碼反復(fù)執(zhí)行,達(dá)到你想要的結(jié)果。 for一種比較靈活且危險(xiǎn)(與其它循環(huán)相比)的一種循環(huán)。 一般使用一個(gè)變量來引導(dǎo)它的運(yùn)行,這個(gè)變量就叫作循環(huán)變量。 for([1];[2];[3]) {[4]; }1、給循環(huán)變量賦初值,C99標(biāo)準(zhǔn)才可以定義循環(huán)變量。此處定義的循環(huán)變量,只能for循環(huán)內(nèi)使用。 2、判斷循環(huán)變量的是否到達(dá)邊界。 4、被反復(fù)執(zhí)行的代碼,也叫循環(huán)體。 3、改變循環(huán)變量,防止變成死循環(huán),一般對(duì)循環(huán)變量自加或自減。大括號(hào)問題:1、建議上下對(duì)齊2、循環(huán)體如果只有一行代碼,大括號(hào)可以省略但不利于擴(kuò)展,一般商業(yè)代碼要求大括號(hào)不能省略。for循環(huán)的多種寫法: for(;;) {// 死循環(huán) }int i = 0; for(;i<10; i++) {}for(int i=0; i<10;) {printf("----");i++; }while語句:
while(條件) // 當(dāng)條件為真執(zhí)行循環(huán)體,為假時(shí)結(jié)束 {// 循環(huán)體 }while循環(huán)相當(dāng)于for循環(huán)的精簡(jiǎn)版本。 for循環(huán)負(fù)責(zé)解決明確知道循環(huán)次數(shù)的問題。 while負(fù)責(zé)解決只知道結(jié)束條件而不確定循環(huán)次數(shù)的問題。do while語句:
do{循環(huán)體 }while(條件); 先執(zhí)行循環(huán)體,再判斷循環(huán)條件,該循環(huán)至少執(zhí)行一次。循環(huán)嵌套:
循環(huán)語句中包含循環(huán)語句。 外層循環(huán)執(zhí)行一次,內(nèi)存循環(huán)執(zhí)行遍。練習(xí)3:計(jì)算出所有的水仙花數(shù)。
#include <stdio.h>int main(int argc,const char* argv[]) {for(int i=100; i<1000; i++){int g = i%10;int s = i/10%10;int b = i/100;if(g*g*g+s*s*s+b*b*b == i){printf("%d\n",i);}} }練習(xí)4:輸入一個(gè)正整數(shù),判斷是否是素?cái)?shù)。
#include <stdio.h>int main(int argc,const char* argv[]) {int num = 0;printf("請(qǐng)輸入一個(gè)整數(shù):");scanf("%d",&num);if(num < 2){printf("輸入的數(shù)據(jù)有誤!\n");return 0;}int cnt = 0;for(int i=1; i<=num; i++){if(0 == num%i){cnt++;}}if(2 == cnt){printf("是素?cái)?shù)\n");}else{printf("不是素?cái)?shù)\n");} } #include <stdio.h>int main(int argc,const char* argv[]) {int num = 0;printf("請(qǐng)輸入一個(gè)整數(shù):");scanf("%d",&num);if(num < 2){printf("輸入的數(shù)據(jù)有誤!\n");return 0;}int i = 2;for(; i<num; i++){if(0 == num%i){printf("不是素?cái)?shù)\n");return 0;}}printf("是素?cái)?shù)!\n");}練習(xí)5:輸入一個(gè)整數(shù),分解顯示。
-1234
-1 2 3 4
練習(xí)6:輸入一個(gè)正整數(shù),判斷是否是回文數(shù)。
1234
4321
跳轉(zhuǎn)語句:
goto 可以在函數(shù)內(nèi)任意跳轉(zhuǎn)。 它可能會(huì)破壞已經(jīng)設(shè)計(jì)好的分支或循環(huán)語句,因此絕大多數(shù)公司禁止使用。 但它在驅(qū)動(dòng)編程時(shí)特別適合處理異常。標(biāo)簽: // 位置 goto 標(biāo)簽;練習(xí)7:不使用循環(huán)計(jì)算前N項(xiàng)的斐波那切數(shù)列。
1 1 2 3 5 8 13 21 …
該系列持續(xù)更新
希望喜歡的小伙伴可以一鍵三連~~
總結(jié)
以上是生活随笔為你收集整理的开关语句、循环语句、goto的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ASP无组件上传带进度条
- 下一篇: 关于VISIO工具栏、菜单栏消失的解决办