Я изучил основы C++ несколько месяцев назад. Недавно я нашел цикл while, который выглядит так. Я хочу понять, как это работает.Как работает этот цикл C++ while?
while(cin>>n>>m,n||m)
{
does something;
}
Я изучил основы C++ несколько месяцев назад. Недавно я нашел цикл while, который выглядит так. Я хочу понять, как это работает.Как работает этот цикл C++ while?
while(cin>>n>>m,n||m)
{
does something;
}
operator , (operator comma)
выполняет все команды в списке и возвращает значение последнего выражения, так cin>>n>>m,n||m
равно
cin >> n >> m;
n || m;
И весь цикл будет работать, как это:
int n, m;
cin >> n >> m;
while(n || m){
//some action
cin >> n >> m;
}
Хотя компилятор может выполнять эти инструкции в любом порядке. – ForceBru
Um no. В C++ 98 говорят все std :: ostream :: operator >>, оператор запятой и логический или оператор производят точку последовательности. У вас вообще нет выбора. (Более поздние стандарты на C++ говорят о «секвенировании до/после», а не о точках последовательности, но логика одна и та же.) –
спасибо за объяснение, теперь я понимаю концепцию. – Reshad
запятая возвращает оператор последнее значение. 'a, b' истинно, когда' b' истинно. –
Для * экстремального * педантизма нужно набирать 'while (cin >> n >> m, void(), n || m)' –