Форум по Delphi программированию

 



Вернуться   Форум по Delphi программированию > Прочие языки программирования > Прочее...
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 01.10.2014, 23:14
Аватар для Царь
Царь Царь вне форума
Новичок
 
Регистрация: 13.05.2013
Сообщения: 52
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию C# - if else и немного textBox

Доброго времени!
Я думаю простейший вопрос, господа, который для меня будет как нахождение грааля тамплиером.
В общем, есть программка на c#, в которой есть три textBox-а. в них вписываются значения по которым идет дальнейшее вычисление.
Внимание вопрос! Как правильно прописать проверку - не пустые ли строки textBox-а?
Я прописываю if но что-то у меня идет не так. То есть в целом код работает нормально, но если где-то поле не заполнено, то всё рушится.
Вот собственно код:
Код:
 private void button1_Click(object sender, EventArgs e)
        {
            double x, y, z, u;
            x = Convert.ToDouble(textBox1.Text);
            y = Convert.ToDouble(textBox2.Text);
            z = Convert.ToDouble(textBox3.Text);
            if (textBox1.Text == "")
            if (textBox2.Text == "")
            if (textBox3.Text == "")
            {
                Console.WriteLine("Одно из значений не введено! Введите же его!");

            }
            else
                {
            Result.Items.Clear();
            u = Math.Pow((Math.Sin(x) / Math.Cos(x)), 2) - Math.Exp(x - y) * Math.Sqrt(Math.Sin(x * x) + Math.Cos(z * z));
            Result.Items.Add("При x=" + x);
            Result.Items.Add(" y=" + y);
            Result.Items.Add(" z=" + z);
            Result.Items.Add("u=" + u);
                }
            
        }
__________________
Сталкиваться с препятствиями полезно. Только отвечая на вызовы судьбы, мы узнаем пределы наших возможностей.
Ответить с цитированием
  #2  
Старый 02.10.2014, 00:05
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Проверку на if нужно делать до конвертации. При этом проверку нужно делать для каждого поля.
Код:
if (textBox1.Text == "") || (textBox2.Text == "") || (textBox3.Text == "")
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
Этот пользователь сказал Спасибо angvelem за это полезное сообщение:
Царь (02.10.2014)
  #3  
Старый 02.10.2014, 00:11
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Код:
if (textBox1.Text == "")
if (textBox2.Text == "")
if (textBox3.Text == "")
{
...
}
=
Код:
if (textBox1.Text == "")
{
  if (textBox2.Text == "")
  {
    if (textBox3.Text == "")
    {
    ...
    }
  }
}
=
Код:
if (textBox1.Text == "" && textBox2.Text == "" && textBox3.Text == "")
{
  ...
}
Т.е. "если Text во всех трех TextBox'ах одновременно пустой", что неверно.
Не нужно писать код так непонятно. Тогда вопрос сам отпадет.
И проверять-то до конвертирования надо. Как angvelem и написал.

ЗЫЖ а на случай записи в Text каких-то левых, не числовых, значений (если это возможно), можно использовать try-catch.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.

Последний раз редактировалось Bargest, 02.10.2014 в 00:17.
Ответить с цитированием
Этот пользователь сказал Спасибо Bargest за это полезное сообщение:
Царь (02.10.2014)
  #4  
Старый 02.10.2014, 00:22
Аватар для Царь
Царь Царь вне форума
Новичок
 
Регистрация: 13.05.2013
Сообщения: 52
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Премного вам благодарен за ответы )
Да, действительно затупил, вычисляя сразу все строки...
Ошибку теперь не выдает и не падает, однако почему-то не выдает заданное мной текстовое сообщение. Ладно, это сам найду. Спасибо еще раз )
__________________
Сталкиваться с препятствиями полезно. Только отвечая на вызовы судьбы, мы узнаем пределы наших возможностей.
Ответить с цитированием
Ответ



Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 19:31.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2021

ВКонтакте   Facebook   Twitter