在撰寫一些代碼時,我遇到了一個問題。如果假設的(C 風格)編程語言支持有損花括號,if
但else
不支持else if
(明確)。它也應該像這樣的情況
if(a)
if(b)
f();
else
g();
組陳述句如
if(a){
if(b){
f();
}else{
g();
}
}
. 所以,(這個例子不需要大括號)
if(a){
f1();
}else if(b){
f2();
}else if(c){
f3();
}else{
f4();
}
將被分組為
if(a){
f1();
}else{
if(b){
f2();
}else{
if(c){
f3();
}else{
f4();
}
}
}
. 我想檢查這是否意味著在這種假設的語言中else if
會表現得像C
. 感謝您伸出援手。
編輯:澄清一下,lossy curly brackets
(我認為它的拼寫是loosy)是來自不久前的編譯器警告,當時我寫了類似的東西
if(a)
if(b)
f1();
else
f2();
.
另一個編輯:盡管有人指出 C 可能是我的假設語言,但我發現代碼可以在我的假設語言中運行但不在 C 中運行的情況:
if(a) else
f();
uj5u.com熱心網友回復:
在 C 編程語言中:
else if(condition){
statement;
}
嚴格等同于:
else{
if(condition){
statement;
}
}
uj5u.com熱心網友回復:
是的,它會的。正如評論中的人們所指出的,C
對 沒有特殊處理else if
,而是像假設語言一樣處理它。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/512189.html
上一篇:了解正則運算式語法中的“嚴格性”