Оператор && не может применятся к операндам типа "string" и "string" - C#
Формулировка задачи:
Доброго времени суток...
Решил сделать в программке (домашнем задании) не большое "Пасхальное Яйцо"
вообщем то имеем три текст бокса.
имеем проверку их заполнения, но они должны заполняться только 1 или 0
так же есть еще допустимый вариант когда в текст бокс 1 стоит символ Х в текст бокс 2 стоит символ У в текст бокс 3 стоит Z , в других вариация вводить символы нельзя, иначе выйдет сообщение с предупреждением
ну и собственно реализован алгоритм действий если в текст боксы введены символы удовлетворяющие условию описаному выше...
так вот , когда введен 1 или 0 во все боксы, все работает норма,
Но проблемы, с буквами...
вообщем мне нужно взять символ из текст бокса и сравнить его с другим символм, если они совпадают то выдать определенное текстовое предупреждение. все что мне удалось реализовать это только то что программа не ругается на то что введены символы Икс, Игрик и Z ,и начинает работать дальше, но естественно выпадает в ступор не найдя 1 или 0 , так как мне ни как не получается сравнить сивол из текст бокса с моими...
привожу кусок кода
if (((textBox1.Text == "0") && (textBox2.Text == "0") && (textBox3.Text == "0")) || // проверяем на заполнение текст бокс 1 и текст бокс 2 и текст бокс 3, либо 1 либо 0 ((textBox1.Text == "0") && (textBox2.Text == "0") && (textBox3.Text == "1")) || ((textBox1.Text == "0") && (textBox2.Text == "1") && (textBox3.Text == "1")) || ((textBox1.Text == "1") && (textBox2.Text == "1") && (textBox3.Text == "1")) || ((textBox1.Text == "1") && (textBox2.Text == "1") && (textBox3.Text == "0")) || ((textBox1.Text == "1") && (textBox2.Text == "0") && (textBox3.Text == "0")) || ((textBox1.Text == "1") && (textBox2.Text == "0") && (textBox3.Text == "1")) || ((textBox1.Text == "0") && (textBox2.Text == "1") && (textBox3.Text == "0")) || ((textBox1.Text == "X") && (textBox2.Text == "Y") && (textBox3.Text == "Z"))) { // задаем условие по которому должен получится ответ if (Convert.ToInt32(textBox1.Text) == 1 && Convert.ToInt32(textBox2.Text) == 1 && Convert.ToInt32(textBox3.Text) == 1) // если ТБ1=1 ТБ2=1 ТБ3=1 то Ответ 1 { label1.Text = "Ответ : 1"; } else if (Convert.ToInt32(textBox1.Text) == 0 && Convert.ToInt32(textBox2.Text) == 0 && Convert.ToInt32(textBox3.Text) == 0) // если ТБ1=0 ТБ2=0 ТБ3=0 то Ответ 0 { label1.Text = "Ответ : 0"; } else if (Convert.ToInt32(textBox1.Text) == 1 && Convert.ToInt32(textBox2.Text) == 0 && Convert.ToInt32(textBox3.Text) == 0) // если ТБ1=1 ТБ2=0 ТБ3=0 то Ответ 1 { label1.Text = "Ответ : 1"; } else if (Convert.ToInt32(textBox1.Text) == 0 && Convert.ToInt32(textBox2.Text) == 1 && Convert.ToInt32(textBox3.Text) == 0) // если ТБ1=0 ТБ2=1 ТБ3=0 то Ответ 1 { label1.Text = "Ответ : 1"; } else if (Convert.ToInt32(textBox1.Text) == 1 && Convert.ToInt32(textBox2.Text) == 1 && Convert.ToInt32(textBox3.Text) == 0) // если ТБ1=1 ТБ2=1 ТБ3=0 то Ответ 0 { label1.Text = "Ответ : 0"; } else if (Convert.ToInt32(textBox1.Text) == 0 && Convert.ToInt32(textBox2.Text) == 0 && Convert.ToInt32(textBox3.Text) == 1) // если ТБ1=0 ТБ2=0 ТБ3=1 то Ответ 1 { label1.Text = "Ответ : 1"; } else if (Convert.ToInt32(textBox1.Text) == 1 && Convert.ToInt32(textBox2.Text) == 0 && Convert.ToInt32(textBox3.Text) == 1) // если ТБ1=1 ТБ2=0 ТБ3=1 то Ответ 0 { label1.Text = "Ответ : 0"; } else if (Convert.ToInt32(textBox1.Text) == 0 && Convert.ToInt32(textBox2.Text) == 1 && Convert.ToInt32(textBox3.Text) == 1) // если ТБ1=0 ТБ2=1 ТБ3=1 то Ответ 1 { label1.Text = "Ответ : 0"; }; } else // если в текст бокс 1 и текст бокс 2 введены не символы 1 или 0 тогда { MessageBox.Show("Введите 0 или 1"); } // вывести сообщение "Введите 0 или 1" break; // остановка
как только начинаю играться по подобию уже написаного , программа меня осаживает и постоянно тыкает носом в то что я не могу так делать, потому что это тип стринг...а как тогда сделать?
Решение задачи: «Оператор && не может применятся к операндам типа "string" и "string"»
textual
Листинг программы
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace WindowsFormsApplication1 { public partial class Form1 : Form { int operacia; // это номер операции public Form1() // первоначальная инициализация при запуске { InitializeComponent(); // инициализация компонентов textBox1.Visible = false; // делаем невидимым текст бокс1 textBox2.Visible = false; // делаем невидимым текст бокс2 textBox3.Visible = false; // делаем невидимым текст бокс3 label1.Text = ""; // делаем невидимым лейбл1 label3.Text = ""; // делаем невидимым лейбл3 label4.Text = ""; // делаем невидимым лейбл4 label5.Text = ""; // делаем невидимым лейбл5 } private void radioButton1_CheckedChanged_1(object sender, EventArgs e) // нажатие на радио кнопку 1 "Отрицание ( НЕ )" { textBox1.Visible = true; // показываем текст бокс1 textBox2.Visible = false; // скрываем текст бокс2 textBox3.Visible = false; // скрываем текст бокс3 label3.Text = "Введите 1 опреанду"; // выводим информационный лейбл вместе с текст боксом1 label4.Text = ""; // делаем невидимым лейбл4 label5.Text = ""; // делаем невидимым лейбл5 operacia = 1; // это номер операции привязанной к радио кнопке 1 "Отрицание ( НЕ )" } private void radioButton2_CheckedChanged_1(object sender, EventArgs e) // нажатие на радио кнопку 2 "Коньюкция ( ИЛИ )" { textBox1.Visible = true; // показываем текст бокс1 textBox2.Visible = true; // показываем текст бокс2 textBox3.Visible = false; // скрываем текст бокс3 label3.Text = "Введите 1 опреанду"; // выводим информационный лейбл вместе с текст боксом1 label4.Text = "Введите 2 опреанду"; // выводим информационный лейбл вместе с текст боксом2 operacia = 2; // это номер операции привязанной к радио кнопке 2 "Коньюкция ( ИЛИ )" } private void radioButton3_CheckedChanged_1(object sender, EventArgs e) // нажатие на радио кнопку 3 "Дизьюкция ( И )" { textBox1.Visible = true; // показываем текст бокс1 textBox2.Visible = true; // показываем текст бокс2 textBox3.Visible = false; // скрываем невидимым текст бокс3 label3.Text = "Введите 1 опреанду"; // выводим информационный лейбл вместе с текст боксом1 label4.Text = "Введите 2 опреанду"; // выводим информационный лейбл вместе с текст боксом2 operacia = 3; // это номер операции привязанной к радио кнопке 3 "Дизьюкция ( И )" } private void radioButton4_CheckedChanged_1(object sender, EventArgs e) // нажатие на радио кнопку 4 "Cложение по модулю два (^)" { textBox1.Visible = true; // показываем текст бокс1 textBox2.Visible = true; // показываем текст бокс2 textBox3.Visible = true; // показываем текст бокс3 label3.Text = "Введите 1 опреанду"; // выводим информационный лейбл вместе с текст боксом1 label4.Text = "Введите 2 опреанду"; // выводим информационный лейбл вместе с текст боксом2 label5.Text = "Введите 3 опреанду"; // выводим информационный лейбл вместе с текст боксом3 operacia = 4; // это номер операции привязанной к радио кнопке 4 "Cложение по модулю два (^)" } private void button1_Click_1(object sender, EventArgs e) // нажатие на кнопку "решение" { switch (operacia) // делим операции на кейсы в зависимости от выбраной радио кнопки { case 1: // кейс радио кнопки 1 "Отрицание ( НЕ )" if ((textBox1.Text == "0") || (textBox1.Text == "1")) // проверяем на заполнение текст бокс 1, либо 1 либо 0 { // если введена либо 1 либо 0 if (Convert.ToInt32(textBox1.Text) == 1) // тогда если введена 1 вывести лейбл 1 с текстом 1 { label1.Text = "Ответ : 0"; }; if (Convert.ToInt32(textBox1.Text) == 0) // тогда если введена 0 вывести лейбл 1 с текстом 0 { label1.Text = "Ответ : 1"; }; } else // если в текст бокс 1 введен не символ 1 или 0 тогда {MessageBox.Show("Введите 0 или 1");} // вывести сообщение "Введите 0 или 1" break; // остановка case 2: // кейс радио кнопки 2 "Коньюкция ( ИЛИ )" if ((textBox1.Text == "0") && (textBox2.Text == "0") || // проверяем на заполнение текст бокс 1 и текст бокс 2, либо 1 либо 0 (textBox1.Text == "0") && (textBox2.Text == "1") || (textBox1.Text == "1") && (textBox2.Text == "1") || (textBox1.Text == "1") && (textBox2.Text == "0")) { // если введена либо 1 либо 0 if (Convert.ToInt32(textBox1.Text) == 1 || Convert.ToInt32(textBox2.Text) == 1) // тогда если введена 1 ИЛИ 1 вывести лейбл 1 с текстом 1 { label1.Text = "Ответ : 1"; } else // иначе вывести лейбл 1 с текстом 0 { label1.Text = "Ответ : 0"; }; } else // если в текст бокс 1 и текст бокс 2 введены не символы 1 или 0 тогда { MessageBox.Show("Введите 0 или 1"); } // вывести сообщение "Введите 0 или 1" break; // остановка case 3: // кейс радио кнопки 3 "Дизьюкция ( И )" if ((textBox1.Text == "0") && (textBox2.Text == "0") || // проверяем на заполнение текст бокс 1 и текст бокс 2, либо 1 либо 0 (textBox1.Text == "0") && (textBox2.Text == "1") || (textBox1.Text == "1") && (textBox2.Text == "1") || (textBox1.Text == "1") && (textBox2.Text == "0")) { // если введена либо 1 либо 0 if (Convert.ToInt32(textBox1.Text) == 1 && Convert.ToInt32(textBox2.Text) == 1) // тогда если введена 1 И 1 вывести лейбл 1 с текстом 1 { label1.Text = "Ответ : 1"; } else // иначе вывести лейбл 1 с текстом 0 { label1.Text = "Ответ : 0"; }; } else // если в текст бокс 1 и текст бокс 2 введены не символы 1 или 0 тогда { MessageBox.Show("Введите 0 или 1"); } // вывести сообщение "Введите 0 или 1" break; // остановка case 4: // кейс радио кнопки 4 Cложение по модулю два (^) if (((textBox1.Text == "0") && (textBox2.Text == "0") && (textBox3.Text == "0")) || // проверяем на заполнение текст бокс 1 и текст бокс 2 и текст бокс 3, либо 1 либо 0 ((textBox1.Text == "0") && (textBox2.Text == "0") && (textBox3.Text == "1")) || ((textBox1.Text == "0") && (textBox2.Text == "1") && (textBox3.Text == "1")) || ((textBox1.Text == "1") && (textBox2.Text == "1") && (textBox3.Text == "1")) || ((textBox1.Text == "1") && (textBox2.Text == "1") && (textBox3.Text == "0")) || ((textBox1.Text == "1") && (textBox2.Text == "0") && (textBox3.Text == "0")) || ((textBox1.Text == "1") && (textBox2.Text == "0") && (textBox3.Text == "1")) || ((textBox1.Text == "0") && (textBox2.Text == "1") && (textBox3.Text == "0")) || ((textBox1.Text == "Х") && (textBox2.Text == "У") && (textBox3.Text == "Z")) || ((textBox1.Text == "X") && (textBox2.Text == "У") && (textBox3.Text == "Z")) || ((textBox1.Text == "X") && (textBox2.Text == "Y") && (textBox3.Text == "Z")) || ((textBox1.Text == "Х") && (textBox2.Text == "Y") && (textBox3.Text == "Z"))) { // задаем условие по которому должен получится ответ if (textBox1.Text == "Х" && textBox2.Text == "х" && textBox2.Text == "X" && textBox2.Text == "x" && textBox2.Text == "У" && textBox2.Text == "у" && textBox2.Text == "Y" && textBox2.Text == "y" && textBox3.Text == "Z") { MessageBox.Show("Пасхальное яйцо найдено!!!"); } else if (Convert.ToInt32(textBox1.Text) == 1 && Convert.ToInt32(textBox2.Text) == 1 && Convert.ToInt32(textBox3.Text) == 1) // если ТБ1=1 ТБ2=1 ТБ3=1 то Ответ 1 { label1.Text = "Ответ : 1"; } else if (Convert.ToInt32(textBox1.Text) == 0 && Convert.ToInt32(textBox2.Text) == 0 && Convert.ToInt32(textBox3.Text) == 0) // если ТБ1=0 ТБ2=0 ТБ3=0 то Ответ 0 { label1.Text = "Ответ : 0"; } else if (Convert.ToInt32(textBox1.Text) == 1 && Convert.ToInt32(textBox2.Text) == 0 && Convert.ToInt32(textBox3.Text) == 0) // если ТБ1=1 ТБ2=0 ТБ3=0 то Ответ 1 { label1.Text = "Ответ : 1"; } else if (Convert.ToInt32(textBox1.Text) == 0 && Convert.ToInt32(textBox2.Text) == 1 && Convert.ToInt32(textBox3.Text) == 0) // если ТБ1=0 ТБ2=1 ТБ3=0 то Ответ 1 { label1.Text = "Ответ : 1"; } else if (Convert.ToInt32(textBox1.Text) == 1 && Convert.ToInt32(textBox2.Text) == 1 && Convert.ToInt32(textBox3.Text) == 0) // если ТБ1=1 ТБ2=1 ТБ3=0 то Ответ 0 { label1.Text = "Ответ : 0"; } else if (Convert.ToInt32(textBox1.Text) == 0 && Convert.ToInt32(textBox2.Text) == 0 && Convert.ToInt32(textBox3.Text) == 1) // если ТБ1=0 ТБ2=0 ТБ3=1 то Ответ 1 { label1.Text = "Ответ : 1"; } else if (Convert.ToInt32(textBox1.Text) == 1 && Convert.ToInt32(textBox2.Text) == 0 && Convert.ToInt32(textBox3.Text) == 1) // если ТБ1=1 ТБ2=0 ТБ3=1 то Ответ 0 { label1.Text = "Ответ : 0"; } else if (Convert.ToInt32(textBox1.Text) == 0 && Convert.ToInt32(textBox2.Text) == 1 && Convert.ToInt32(textBox3.Text) == 1) // если ТБ1=0 ТБ2=1 ТБ3=1 то Ответ 1 { label1.Text = "Ответ : 0"; }; } else // если в текст бокс 1 и текст бокс 2 введены не символы 1 или 0 тогда { MessageBox.Show("Введите 0 или 1"); } // вывести сообщение "Введите 0 или 1" break; // остановка } } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д