Czy istnieje odpowiednik pętli for ... else w języku C++?
Prostszym sposobem wyrażenia własnej logiki jest użycie std::none_of
:
if (std::none_of(std::begin(foo), std::end(foo), bar))
baz();
Jeśli propozycja zakresu dla C++17 zostanie zaakceptowana, miejmy nadzieję, że uprości się to do:
if (std::none_of(foo, bar)) baz();
Jeśli nie masz nic przeciwko użyciu goto
również można to zrobić w następujący sposób. Ten oszczędza z dodatkowych if
check i deklaracja zmiennej o wyższym zakresie.
for(int i = 0; i < foo; i++)
if(bar(i))
goto m_label;
baz();
m_label:
...
To jest moja przybliżona implementacja w C++:
bool other = true;
for (int i = 0; i > foo; i++) {
if (bar[i] == 7) {
other = false;
break;
}
} if(other)
baz();