2012-02-17 2 views
2

У меня есть ситуации, когда я должен сделать некоторые вещи, как этотИспользуется для контура с, если и еще

for (int i = 0; i < list.size; i++) //Master for loop 
{ 
    //I need a control statement here to control list1 i.e. only if statement 

    if (time == list1.get(someInteger)) 
    { 
     //do something 
    } 
    else 
    { 
     //do something else 
    } 
} 

Но каждый «если» должно сопровождаться «еще», и я, кажется, не чтобы понять, как это сделать. Ive пытался сделать и пока но безрезультатно. Для меня важно выполнить как if, так и else, но иметь инструкцию управления только для «if».

Возможно ли это?

+0

непонятно, что вы хотите. – Bozho

+0

Вам нужно, чтобы это было описано лучше. Это не требование следовать 'if' с' else'. Это ваше требование? Если да, пожалуйста, опишите, почему. Ключевые слова 'continue' и' break' могут вас заинтересовать. –

+0

Можете ли вы уточнить бит больше. Как и то, что вам нужно сделать в боковом выражении if и else? Поскольку вы говорите, что вам нужно выполнить оба блока if и else, я думаю, вы используете те, которые не подходят для разных целей. (Пример и пример вашего оператора if специально для установки флага, а часть else - обязательный блок, который должен быть исполнен) –

ответ

2

С вашими текущими ограничениями и описанием и рациональными предположениями No.

Для меня важно выполнить как if, так и else, но иметь контрольный оператор только для "if".

Это нарушает спецификацию того, что такое if...else.... Вы не можете выполнить как if, так и else и сохранить структуру if...else.... Логически вы можете отказаться от else и просто иметь код в другом месте цикла, как указывали другие ответы. Однако, если вам действительно нужно сохранить if и else, вам нужно выяснить, почему у нас есть контекст для ответа на ваш вопрос.

Если у вас есть некоторые интересные вещи, вы можете также взглянуть на switch и использовать настройку Goto Case. Возможно, стоит сказать, что это, вероятно, не рекомендовано многими опытными программистами. Switch statement fallthrough in C#?

+0

в моем коде, я сравниваю время со временем из списка и вижу, равны ли они в «if утверждение "и нарисуйте те времена на правой стороне холста. «else statement» - для всего остального, и это время следует рисовать слева. Поэтому в основном мне нужны и то и другое, потому что, если я не включаю else, тогда раз в цикле if рисуются как на левой, так и на правой стороне холста. –

+0

Означает ли это, что ваш выбор логически делает то, что вам нужно?Вы хотите избавиться от другого, но только выполнить его, если это не так, если да, то почему? Вы можете поместить 'continue;' в 'if' команду, удалить else, и он будет работать таким образом, но логически это почти * эквивалентно тому, чтобы иметь как if ... else. Если вы хотите, чтобы if или else, который будет выполняться только после использования 'break;', где вы хотите выйти из цикла. –

+0

My Algorithm: > Если инструкция if выполняется, нарисуйте вид справа. > Инструкция else else должна выполняться принудительно для всех, кроме элементов, которые соответствуют в инструкции if. Теперь, если я делаю это по-своему, то есть я не использую иначе, тогда случается, что выполняется «if», а элементы рисуются с правой стороны, но снова одни и те же элементы (которые должны рисоваться только справа) нарисованные вместе с другими элементами слева, поскольку каждый элемент является частью мастера для цикла. Это не происходит, если я включаю инструкцию else ... –

8

... Вам не нужно else с каждым if. Это так просто.

+0

В моем случае я делаю, моя часть должна исполняться для всего остального, если оператор проверяет, равен ли время времени из списка1, и если оно верно, рисует прямоугольник с правой стороны холста, Оставайтесь на левой стороне. Если я не включаю else, тогда прямоугольники рисуются как справа, так и слева от холста –

+0

@mirroredAbstraction См. Комментарий Джошуа Энфилда –

1

попробовать:

for (int i = 0; i < list.size; i++) //Master for loop 
{ 
    //I need a control statement here to control list1 i.e. only if statement 

    if (time == list1.get(someInteger)) 
    { 
     //do something 
    } 
     //do the other something 
} 

Условный будет удар, только если условие выполняется, то другая часть всегда будет хитом.

Смежные вопросы