if ((code == S || M || L || N || P || K ||R || C || U || W || O))
{
return T;
}
我正確使用or運算符嗎?我正打算爲是那些性格中的任何一個,但我不知道如果我正確使用操作邏輯運算符||
if ((code == S || M || L || N || P || K ||R || C || U || W || O))
{
return T;
}
我正確使用or運算符嗎?我正打算爲是那些性格中的任何一個,但我不知道如果我正確使用操作邏輯運算符||
不,那是無效的。首先,每個人都必須使用單引號,其次,您必須明確地與每個字符進行比較 - 即if(code == 'S' || code == 'M' ...)
。
如果你正在檢查這許多條件,現在是時候獲得一個數組並使用一個循環。
不,你應該寫 -
if ((code == 'S') ||(code == 'M') ||(code == 'L') /*....*/)
你需要寫:
code == 'S' || code == 'M' || code == 'L', etc.
但你也可以這樣做:
if(strchr("SMLNPKJRCUWO", code) != NULL) (or != 0, if you don't have NULL defined)
{}
strchr
說:「是在字符串中的字符如果是這樣,給我在什麼地方呢?如果不是,則返回NULL「(這只是一個奇怪的說零的方式)。
要使用strchr,您可能需要在源文件的頂部有#include <string.h>
。
不,你不知道。 ||
是邏輯或操作,而C編譯器會將其解釋是這樣的:
if ((code == 'S' || 'M' != 0 || 'L' != 0 || 'N' != 0 || 'P' != 0 || 'K' != 0 || 'R' != 0 || 'C' != 0 || 'U' != 0 || 'W' != 0 || 'O' != 0))
,我會希望是這樣呢。我相信你想要的東西少漫不經心languuage一樣,但在數學上正確的:
if ((code == 'S' || code == 'M' || code == 'L' || code == 'N' || code == 'P' || code == 'K' || code == 'R' || code == 'C' || code == 'U' || code == 'W' || code == 'O'))
也許你要考慮switch
,這會看起來更好,更清晰。
switch(code) {
case 'S':
case 'M':
case 'L':
case 'N':
case 'P':
case 'K':
case 'R':
case 'C':
case 'U':
case 'W':
case 'O':
return 'T';
}
不,首先,我假設code
是char類型並且包含單個字符。
如果你想if語句使用,你需要寫...
if ((code == 'S' || code == 'M' || code == 'L' || ...)
{
return 'T';
}
不過,我建議您使用此開關/箱。
switch(code){
case 'S':
case 'M':
case 'L':
case 'N':
case 'P':
case 'K':
case 'R':
case 'C':
case 'U':
case 'W':
case 'O':
return 'T';
break;
case 'V':
/* Do something else if code == 'V' */
break;
default:
/* It's any other value... */
}
通常使用開關/箱時,有人告訴你每個選項使用break,因爲這些選項將「落空」。但是,如果您有多個選項,您也可以將其用於您的優勢。
哦好吧謝謝你 – 2011-02-24 22:59:13