Оператор && не может применятся к операндам типа "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; // остановка
- }
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д