Несколько условий с оператором if - PullRequest
0 голосов
/ 19 февраля 2019

Как задать несколько условий с помощью оператора «if»

Я хочу, чтобы мой оператор «if» выполнялся при определенных значениях переменной счетчика «i», где «i» находится в диапазоне от 1: 100 до «if»'оператор должен выполняться при i = 10,20,30,40, .. 100.Как я могу установить условие с помощью оператора «if»?

for i=1:100
if i=10||20||30||40||50||60||70||80||90||100
fprintf('this is multiple of 10') % 1st section
else
fprintf('this is not multiple of 10') % 2nd section
end

Я ожидаю, что «1-й раздел должен выполняться только тогда, когда« i »равен кратному 10, но в действительности« 1-й раздел »выполняется всегда.

Ответы [ 2 ]

0 голосов
/ 19 февраля 2019

Для вашего конкретного случая (т. Е. Число, кратное 10), ответ от machnic с использованием mod (или rem) функция является наилучшим подходом:

if mod(i, 10) == 0 ...
% Or
if rem(i, 10) == 0 ...

Для более общего случая (т. е. число в данном наборе), у вас есть несколько вариантов.Вы можете использовать функцию any для результата сравнения векторизованного равенства :

if any(i == 10:10:100) ...

Или вы можете использовать ismember функция:

if ismember(i, 10:10:100) ...
0 голосов
/ 19 февраля 2019

Как предлагается в комментариях, для такого простого условия вы можете использовать функцию mod:

for i = 1:100
    if mod(i, 10) == 0
        fprintf('%i - this is multiple of 10\n', i) % 1st section
    else
        fprintf('%i - this is not multiple of 10\n', i) % 2nd section
    end
end
...