深入了解C語言結(jié)構(gòu)化的程序設(shè)計(jì)
C語言是結(jié)構(gòu)化的程序設(shè)計(jì)語言!
結(jié)構(gòu)有三大類:順序結(jié)構(gòu),選擇結(jié)構(gòu),循環(huán)結(jié)構(gòu)!
順序結(jié)構(gòu):順序結(jié)構(gòu)是最簡單的,只要按照解決問題的順序?qū)懗鱿鄳?yīng)的語句就行,它的執(zhí)行順序是自上而下,依次執(zhí)行。
舉個例子:
#include<stdio.h> int main() { int i=1;//這段代碼中i依次為1,2,3 printf("%d\n",i);//同時打印1,2,3,這里的代碼就是按順序結(jié)構(gòu)進(jìn)行下去的 i++; printf("%d\n",i); i++; printf("%d\n",i); return 0; }
選擇結(jié)構(gòu):選擇結(jié)構(gòu)用于判斷給定的條件,根據(jù)判斷的結(jié)果判斷某些條件,根據(jù)判斷的結(jié)果來控制程序的流程。主要是使用if語句,以及switch語句。
if語句
1:單分支結(jié)構(gòu)
if(表達(dá)式) 語句;
#include<stdio.h> int main() { int age; scanf("%d",&age); if(age<18) { printf("未成年\n"); } return 0; }
2:多分支結(jié)構(gòu)
if(表達(dá)式1) 語句1; else if(表達(dá)式2) 語句2; else 語句3;
#include<stdio.h> int main() { int age; scanf("%d",&age); if(age<18) { printf("未成年\n"); } else if(age>=18&&age<=30) { printf("青年\n"); } else { printf("中年以及老年\n"); } return 0; }
注:當(dāng)if語句中的表達(dá)式結(jié)果為真,則語句執(zhí)行
懸空else
看看這段代碼,你知道它會打印什么嗎?
#include<stdio.h> int main() { int a=0; int b=0; if(a==1) if(b==2) printf("hehe\n"); else printf("haha\n"); return 0; }
如果你覺得會打印東西,那么恭喜你,回答錯誤?。?!
告訴你給秘密,下面的這段代碼等于上面的那段代碼!
#include<stdio.h> int main() { int a=0; int b=0; if(a==1) { if(b==2) { printf("hehe\n"); } else { printf("haha\n"); } } return 0; }
看完上面的代碼估計(jì)你就明白了!else是與最近的if匹配,而不是與對其的if匹配!
switch語句:switch語句常常用于多分支的情況。
switch(整形表達(dá)式) { 語句項(xiàng); } 語句項(xiàng) //是一些case整形常量表達(dá)式: 語句
#include<stdio.h> int main() { int time; scanf("%d",&time); switch(time) { case 1: printf("春天\n"); break;//break是指跳出循環(huán) case 2: printf("夏天\n"); break; case 3: printf("秋天\n"); break; case 4: printf("%冬天\n"); break; default://default是指case沒有規(guī)定的位置,可以寫在任何一個case標(biāo)簽可以出現(xiàn)的位置 printf("輸入錯誤\n"); break; } }
循環(huán)語句:循環(huán)結(jié)構(gòu)是在一定條件下反復(fù)執(zhí)行某段程序的流程結(jié)構(gòu),被反復(fù)執(zhí)行的程序被稱為循環(huán)體。
while循環(huán)
while(表達(dá)式) 循環(huán)語句;
#include<stdio.h> int main() { int i=0; while(i<=10) { i++; if(i==5) continue;//continue是用于終止本次循環(huán),然后直接跳轉(zhuǎn)到while語句的判斷部分,進(jìn)行下一次循環(huán)的入口判斷 printf("%d ",i); } return 0; }
do~while循環(huán):循環(huán)至少執(zhí)行一次,不是經(jīng)常使用!
do 循環(huán)語句; while(表達(dá)式); //與while語句的區(qū)別就是do~while是先執(zhí)行,然后再判斷,while語句相反!
for循環(huán)
for(表達(dá)式1:表達(dá)式2:表達(dá)式3) 循環(huán)語句: 表達(dá)式1:初始化 表達(dá)式2:判斷 表達(dá)式3: 調(diào)整
#define _CRT_SECURE_NO_WARNINGS 1//打印乘法口訣表 #include<stdio.h> int main() { int i,j; for(i=1;i<=9;i++) { for(j=1;j<=i;j++) { printf("%d*%d=%d ",j,i,j*i); } printf("\n"); } return 0; }
總結(jié)
本篇文章就到這里了,希望能給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
C++數(shù)據(jù)結(jié)構(gòu)哈希表詳解
C++標(biāo)準(zhǔn)庫中使用的unordered_map底層實(shí)現(xiàn)是哈希表,下面這篇文章主要給大家介紹了關(guān)于C++中使用哈希表(unordered_map)的一些常用操作方法,需要的朋友可以參考下2022-07-07C++實(shí)現(xiàn)LeetCode(199.二叉樹的右側(cè)視圖)
這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(199.二叉樹的右側(cè)視圖),本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-08-08C語言中的setlinebuf()、utmpname()、rewind函數(shù)使用
這篇文章主要介紹了C語言中的setlinebuf()、utmpname()、rewind函數(shù)使用,是C語言中操作文件的一些基本函數(shù),需要的朋友可以參考下2015-08-08C語言數(shù)據(jù)結(jié)構(gòu)超詳細(xì)講解單向鏈表
鏈表可以說是一種最為基礎(chǔ)的數(shù)據(jù)結(jié)構(gòu)了,而單向鏈表更是基礎(chǔ)中的基礎(chǔ)。鏈表是由一組元素以特定的順序組合或鏈接在一起的,不同元素之間在邏輯上相鄰,但是在物理上并不一定相鄰。在維護(hù)一組數(shù)據(jù)集合時,就可以使用鏈表,這一點(diǎn)和數(shù)組很相似2022-03-03關(guān)于C++函數(shù)模版的實(shí)現(xiàn)講解
今天小編就為大家分享一篇關(guān)于關(guān)于C++函數(shù)模版的實(shí)現(xiàn)講解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2018-12-12C++11新特性之右值引用與完美轉(zhuǎn)發(fā)詳解
C++11標(biāo)準(zhǔn)為C++引入右值引用語法的同時,還解決了一個短板,即使用簡單的方式即可在函數(shù)模板中實(shí)現(xiàn)參數(shù)的完美轉(zhuǎn)發(fā)。本文就來講講二者的應(yīng)用,需要的可以參考一下2022-09-09