Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Что делать если visual studio пишет, что не удалось неявно преобразовать тип "bool" в тип "char"

Иван Никитин Ученик (126), на голосовании 7 месяцев назад
Что делать если visual studio пишет, что не удалось неявно преобразовать тип "bool" в тип "char"
я новичок в программировании, поэтому я не понимаю что там не так, и как это исправить
Голосование за лучший ответ
Миру-мир! Просветленный (20123) 8 месяцев назад
Switch проходит по переменной типа char (field[i,j]), а у выражения в case (field[0,0]==sign) тип bool. Эти типы должны совпадать. Вот компилятор и недоумевает.

Как должно быть, зависит от логики программы.

Switch с одним case - это бред. Похоже вы плохо понимаете как switch работает. Перепишите код без switch. Замените этот оператор if-ом
Иван НикитинУченик (126) 8 месяцев назад
спасиба
Руслан СафинЗнаток (423) 8 месяцев назад
Нужно было синтаксис switch объяснить, вдруг у него это еще не дописанный код, и будет там несколько кейсов.
Андрей Панарин Искусственный Интеллект (242654) 8 месяцев назад
В кейсах свича нельзя прописывать логические условия (если только вы не проверяете свичом значение булевской переменной, что не имеет особого смысла). Там прописываются возможные значения переменной, указанной в круглых скобках свича.
 switch (field[i, j]) {
case sign:
....
break;
При этом, естественно, на равенство sign будет проверяться значение field[i, j], а не field[0, 0].

Если вам нужно больше свободы в проверках, вместо оператора switch используйте if.
inga zajonc Искусственный Интеллект (194219) 8 месяцев назад
Использовать нетипизированный язык.
pivel Ученик (136) 8 месяцев назад
Вообще-то case не так работает. Ты в switch пишешь 1-ю переменную, а в case - вторую. И он будут сравниваться. Но здесь лучше использовать If
Jurijus Zaksas Искусственный Интеллект (440651) 8 месяцев назад
Свич работает так:

 switch (<переменная какого-то типа>) { case <выражение того же типа>: ... } 

А у тебя типы разные. Просто не делай так, соблюдай синтаксис.
Руслан Сафин Знаток (423) 8 месяцев назад
Как некоторые уже объяснили выше, вы неверно понимаете работу switch.
Вы пытаетесь писать условие в шапке case и вручную осуществлять проверку, хотя это уже реализовано "под капотом".
Более подробно можно ознакомиться тут
Так же тут я "накидал" для вас "живой" пример использования.
Похожие вопросы