Нет, ты не. ||
- это логика или операция, и C-компилятор интерпретирует это следующим образом:
if ( (code == 'S' || 'M' != 0 || 'L' != 0 || 'N' != 0 || 'P' != 0 || 'K' != 0 || 'R' != 0 || 'C' != 0 || 'U' != 0 || 'W' != 0 || 'O' != 0) )
, что я в любом случае ожидаю. Я уверен, что вы хотели что-то менее привычное, как язык, но математически правильное:
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';
}