Почему бы не использовать для - каждая конструкция? (Я не использовал Java в некоторое время, но это существует в C#, и я - вполне уверенный Java 1.5, имеет это также):
List<String> names = new ArrayList<String>();
names.add("a");
names.add("b");
names.add("c");
for (String name : names)
System.out.println(name.charAt(0));
Я думаю, вы перепутали логические операторы. Вы ищете
if (txtBox1.Text.Trim() != string.Empty || txtBox2.Text.Trim() != string.Empty )
{
// Do something
}
Вам следует заменить &&
на ||
. В настоящее время код в блоке if
будет выполняться только в том случае, если в обоих текстовых полях есть текст.
Те, кто указал, что вам нужны || вместо && правы. Если вы предпочитаете &&, вы также можете использовать:
if (!(txtBox1.Text.Trim() == string.Empty && txtBox2.Text.Trim() == string.Empty))
{
// Do something
}
Разница чисто эстетическая, но сводится к проверке (на английском языке): « неверно , что оба текстовых поля пусты» в отличие от « Это правда, что по крайней мере одно текстовое поле не пусто ". То же значение, но другой способ выразить это.
Для записи, в вашем первоначальном вопросе это было так: «Верно, что оба текстовых поля не пусты».
if (txtBox1.Text.Trim() != string.Empty || txtBox2.Text.Trim() != string.Empty )
{
// Do something
}
Вы используете &&
, для чего ОБЯЗАТЕЛЬНО из них НЕ пусто. Вы должны использовать ||
(ИЛИ), чтобы получить желаемый результат.
Я выделил BothBoxesEmpty в отдельную переменную, чтобы сделать его более читабельным ... в противном случае все скобки превращаются в нечитаемый беспорядок. Вы можете объединить два оператора, если выберете:
bool BothBoxesEmpty = string.IsNullOrEmpty(TextBox1.Text.Trim()) &&
string.IsNullOrEmpty(TextBox2.Text.Trim());
if (!BothBoxesEmpty)
{
/* Do your stuff */
}
Вы также можете легко заменить string.IsNullOrEmpty на TextBox1.Text.Trim () == string.Empty
as TextBox1.Text
всегда будет возвращать строку (пустую или нет) и никогда не вернет null
.
Может быть проще понять:
if (!(txtBox1.Text.Trim() == string.Empty && txtBox2.Text.Trim() == string.Empty ))
{
// Do something
}
Если вы используете метод, вы также можете сделать что-то вроде этого:
if (txtBox1.Text.Trim() == string.Empty && txtBox2.Text.Trim() == string.Empty )
return;
//Do Something
Вы можете сделать его более кратким, объединив строки, затем тестирование:
if ((txtBox1.Text.Trim() + txtBox2.Text.Trim()) != string.Empty )
{
// Do something
}
В зависимости от того, что представляют собой блоки, это может быть несколько менее очевидным.
Это напомнило мне историю, которую я слышал о младшем кодировщике, которому было сказано ввести правила расчета страховых выплат, где «все моложе 18 и старше 65 лет» этого не делали. квалифицироваться. Поэтому он закодирован как:.
if (age < 18 and age > 65) ...
История гласит, что его коллеги неоднократно пытались убедить его, что его логика не будет работать правильно, но он упорно отказывался понимать или изменить его