Как добавить 2 условия в цикл
Перейти к содержимому

Как добавить 2 условия в цикл

  • автор:

Цикл while с двойным условием в python

Собственно проблема следующая: когда оставляешь в цикле только одно из условий, все работает без нареканий. Как только добавляешь второе условие, они оба начинают просто игнорироваться, хотя должны соблюдаться вместе. И в тело цикла просто не заходит при любом веденном числе

number = int(input('Введите число: ')) while number >= 10 and number  

Отслеживать
задан 22 апр 2020 в 12:07
21 1 1 серебряный знак 2 2 бронзовых знака
А как число может быть одновременно больше 10 и меньше 0?
22 апр 2020 в 12:10

Я просто не нашел другого способа как заставить ввести число от 1 до 9 включительно) Как одновременно исключить ноль, отрицательные числа, 10 и то что больше 10

22 апр 2020 в 12:18

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

Очевидно, что число не может быть одновременно больше 10 и меньше 0. Замените and на or .

Предположим, что number равно 15. Тогда имеем следующее:

По таблице истинности True AND False дает False, поэтому в цикл не попадает. То же самое, если число меньше 0.

А вот True OR False как раз дает True и выполнение заходит в цикл.

Отслеживать
ответ дан 22 апр 2020 в 12:10
26.7k 7 7 золотых знаков 32 32 серебряных знака 49 49 бронзовых знаков

Все стало работать) Но честно говоря непонятно почему это работает если именно and делает так, чтобы соблюдались оба условия, а or одно из них

22 апр 2020 в 12:17

Именно потому так и работает. Если and, что number должно быть больше 10 И ОДНОВРЕМЕННО меньше 0. А если or, то больше 10 ИЛИ меньше 0.

22 апр 2020 в 12:19
я немного дополнил объяснение.
22 апр 2020 в 12:44

Для большей понятности можно обратить условие, написав отрицание через not и взяв в скобки верное условие:

while not (number >= 1 and number  

Т.е. цикл будет выполняться, пока не выполнилось искомое условие, что число "от 1 до 9 включительно".

P.S. Есть три отрезка, которым может принадлежать проверяемое число:

  • Числа < 1
  • Числа от 1 до 9
  • Числа > 9

Число может принадлежать одному из этих отрезков. Когда вы проверяете число на принадлежность отрезку [1,9] вы можете писать условия через и/and , потому что это один отрезок но когда вы проверяете, что число находится в одном из двух разных отрезков (меньше 1 либо, больше 9) вы не можете использовать и/and , а только или/or - это два разных отрезка, число не может принадлежать сразу и тому отрезку и другому.

Как сделать цикл for с двумя условиями?

Начал изучать js и столкнулся с такой проблемой - цикл for с двумя условиями. То есть надо, чтобы цикл итерировался одновременно с двумя условиями и можно ли при этом использовать "логическое И(&&)?

Суть задачи: x = 15, x12. Надо вывести в консоль x и y.
Знаю, что ничего не выйдет, но нужно именно сама суть for с двумя условиями.

Составил такой код, но не понимаю, почему он не работает:

for (let x=15; x12; y++)
  • Вопрос задан более года назад
  • 898 просмотров

3 комментария

Простой 3 комментария

Как добавить 2 условия в цикл

uchet-jkh.ru

Циклы – важный инструмент в программировании, позволяющий многократно выполнять однотипные действия. Однако в некоторых ситуациях может понадобиться добавить не одно, а два условия для выполнения цикла. В данной статье мы рассмотрим, как это сделать и предоставим вам подробное руководство с примерами.

Для добавления двух условий в цикл можно использовать операторы логического И или логического ИЛИ. Оператор логического И (&&) позволяет выполнить цикл только в том случае, если оба условия истинны, а оператор логического ИЛИ (

Как записать несколько условий в цикле for?

Author24 — интернет-сервис помощи студентам

Как задать несколько условий в одном цикле
Здравствуйте, подскажите, пожалуйста, кто знает, как задать несколько условий в одном цикле.

Несколько условий в цикле
Не корректно работает счетчик в таком виде: Например при вводе: 95, 92, 92 должно получиться dt=1.

Несколько условий в цикле
Здравствуйте! Помогите сделать проще. Задача следующая: есть папка, в ней находится множество.

Несколько условий в цикле do while
Нужно, чтобы пользователь ввел или 1 или 2: #include <cmath> #include <iostream> #include.

"C with Classes"
1646 / 1403 / 523
Регистрация: 16.08.2014
Сообщений: 5,881
Записей в блоге: 1

ЦитатаСообщение от selo4404 Посмотреть сообщение

как прописать несколько условий в цикле for?

for ( int i {}; true && true; ++i ); // infinite loop

Эксперт CЭксперт С++

11697 / 6376 / 1724
Регистрация: 18.10.2014
Сообщений: 16,082

ЦитатаСообщение от selo4404 Посмотреть сообщение

как прописать несколько условий в цикле for?

Никак. В цикле for допускается только одно условие.

Что вы вообще имеет в виду под "прописать несколько условий"? Зачем?

Регистрация: 15.11.2012
Сообщений: 77

ЦитатаСообщение от TheCalligrapher Посмотреть сообщение

Что вы вообще имеет в виду под "прописать несколько условий"? Зачем?
1) чтобы избавиться от вложенных циклов.
2) чтобы было несколько счётчиков i,j,k (например)

Эксперт CЭксперт С++

11697 / 6376 / 1724
Регистрация: 18.10.2014
Сообщений: 16,082

ЦитатаСообщение от selo4404 Посмотреть сообщение

1) чтобы избавиться от вложенных циклов.
2) чтобы было несколько счётчиков i,j,k (например)
Примеры недостаточно конкретны. Все равно не ясно, о чем именно идет речь.
5504 / 5099 / 1048
Регистрация: 11.10.2019
Сообщений: 13,367

selo4404, можно использовать класс, в котором будет "оператор инкремента", сменяющий состояние экземпляра класса в нужном направлении. Таким образом можно завернуть N вложенных циклов в один.

Однако, производительность сильно пострадает

Эксперт CЭксперт С++

11697 / 6376 / 1724
Регистрация: 18.10.2014
Сообщений: 16,082

Запихать несколько вложенных циклов в один, при желании, труда не составит

1 2 3 4 5 6 7 8 9
#define N 5 #define M 8 #define L 6 int main() { for (unsigned i = 0, j = 0, k = 0; i  N; ++k == L ? k = 0, ++j == M ? j = 0, ++i : 0 : 0) printf("%d %d %d\n", i, j, k); }

Однако для этого не нужно множественных условий.

По прежнему не ясно, о чем идет речь в вопросе ТС и чем ему могут помочь "несколько условий в цикле for".

2852 / 2352 / 711
Регистрация: 29.06.2020
Сообщений: 8,693

ЦитатаСообщение от selo4404 Посмотреть сообщение

1) чтобы избавиться от вложенных циклов.
2) чтобы было несколько счётчиков i,j,k (например)

Действительно непонятно. что и зачем.

можно вот такую бредятину написать, проход по двумерному массиву одним циклом
вопрос - зачем ?

1 2 3 4 5 6 7 8 9 10 11 12 13
#include int main() { const int rows=2,cols=3; int arr[rows][cols]={{11,12,13},{21,22,23}}; for (int i=0, j=0; // инициализация irows && jcols; // условие работы цикла ++j, j==cols ? ++i,j=0,std::cout::endl : std::cout<' ' ) { std::cout[i][j]; } }

Регистрация: 15.11.2012
Сообщений: 77

ЦитатаСообщение от SmallEvil Посмотреть сообщение

можно вот такую бредятину написать, проход по двумерному массиву одним циклом
вопрос - зачем ?

Бьюсь над "квадратом Паркера" - диагонали, удовлетворяющие условию, нашел, осталось 4 значения подобрать

251 / 184 / 47
Регистрация: 31.01.2021
Сообщений: 934
selo4404, наверное имеет ввиду несколько условий:

for(int i=0, j=10; i10 || j>=0; i++, j--)

Эксперт CЭксперт С++

11697 / 6376 / 1724
Регистрация: 18.10.2014
Сообщений: 16,082

ЦитатаСообщение от YUEN HOIFEF Посмотреть сообщение

selo4404, наверное имеет ввиду несколько условий:

for(int i=0, j=10; i10 || j>=0; i++, j--)

Но i<10 || j>=0 - это одно условие.
251 / 184 / 47
Регистрация: 31.01.2021
Сообщений: 934
Одно из нескольких
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

несколько условий в цикле
Кто знает? Можно ли при объявлении цикла задать что-то типа: for i: = (1 to 20) and (100 to 120).

Несколько условий в цикле for
Имеются строчки кода for j := ACol1 to ACol2 do for i := ARow1 to ARow2 do Если.

Как прописать несколько условий при ИСТИНА и несколько условий при ЛОЖЬ?
Всем доброго времени суток. If & Else как прописать несколько условий при ИСТИНА и несколько.

Записать в List несколько Dictionary в цикле
Всем пт! У меня возникла следующая проблема, надеюсь на Вашу помощь: Мне необходимо записать.

Как сделать несколько условий if?
Как сделать несколько условий if чтобы они совмещались друг с другом, а не работали по отдельности.

Как в while засунуть несколько условий?
как-то так можно?(while ( (<= r2 r1) && (еще одно условие) ) (setq r2 (getreal "Укажите еще раз.

Или воспользуйтесь поиском по форуму:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *