C語言中if語句加大括號和不加大括號的區(qū)別介紹
首先來回顧以下if語句
if(表達(dá)式1){
語句1
語句2
……
}
如果表示條件的邏輯表達(dá)式的結(jié)果不是0,那么就執(zhí)行后面跟著的這對大括號內(nèi)的語句;
否則就跳過不執(zhí)行 繼續(xù)下面的其他語句。
但是if語句還有一種形式可以不用{}。
舉個栗子:
if(a > b) a += b + 10;
if語句這一行結(jié)束的時候并沒有表示語句結(jié)束的";",而后面的賦值語句寫在if的下一行,而且縮進(jìn)了,在這一行結(jié)束的時候有一個分號。
表明這條賦值語句是if語句的一部分,if語句擁有和控制這條賦值語句,決定其是否被執(zhí)行。
簡單地說就是if(邏輯表達(dá)式)后要么跟上"{",要么跟上語句,不能直接寫分號。
if(a > b);
#include <stdio.h> int main() { //初始化 const int STANDARD = 60; int score; printf("請輸入您的分?jǐn)?shù):"); scanf("%d",&score); printf("\n"); if (score > STANDARD) printf("及格"); printf("恭喜你"); else printf("注意補考時間"); printf("再見"); return 0; }
無大括號的情況下 在https://clin.icourse163.org/在線平臺中 顯示Error
也就是無大括號的情況下只能執(zhí)行最近鄰的一行語句。
而有大括號的情況下可以執(zhí)行。
#include <stdio.h> int main() { //初始化 const int STANDARD = 60; int score; printf("請輸入您的分?jǐn)?shù):"); scanf("%d",&score); printf("\n"); if (score > STANDARD){ printf("及格"); printf("恭喜你"); }else{ printf("注意補考時間"); } printf("再見"); return 0; }
執(zhí)行結(jié)果:
$ cpp main.c -o main.ii
$ cc main.ii -o main
$ ./main
請輸入您的分?jǐn)?shù):58
注意補考時間再見Program exited with status 0
總結(jié):
- 有大括號的時候 條件滿足的情況執(zhí)行所有括號內(nèi)語句
- 無大括號的時候 條件滿足執(zhí)行最近鄰語句
更新:為了程序易讀性還是加上大括號啦~
else一般默認(rèn)和最近的if匹配 如果不加{}往往會出現(xiàn)誤讀等情況。
到此這篇關(guān)于C語言中if語句加大括號和不加大括號區(qū)別的文章就介紹到這了,更多相關(guān)C語言 if語句加和不加大括號區(qū)別內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!