Hogyan loopoljak addig c++ -ban míg az általam kívánt szöveget írja be az illető?
#include <iostream>
using namespace std;
int main() {
string FirstName;
string Feri;
cout << "Mi a neved \n";
cin >> FirstName;
if (FirstName == "Feri")
{cout << "MivanFeri";}
else {cout << "Te nem Feri vagy ugyhogy Szia.";
}
return 0;
}
Ezt a kis kódsort dobtam össze, azt szeretném, hogy ha az Illető nem Ferit ír akkor maradjon hogy nem Feri vagy stb. viszont repeatelje addig amíg Ferit nem írunk. Esetleg ha lehetséges és elmagyarázta valaki normális helyzetben ezt a bizonyos loopot akkor utánna az érdekelne, hogy ezt mind hogy oldjam meg úgy, hogy csak úgy loopolom, hogy ugyanazt érem el de csak azt adom meg, hogy pl a 8-13 sort loopolja. Ezt arrafel mondom, hogy a neten sokszor láttam, hogy leírja hogy mit akar s meddig. én azt akarom, hogyha már egyszer leírtam, csak megmondjam hogy na ettől eddig és akkor ezt tudja és loopolja. Ez nem tudom miért ennyire fontos de egész nap ezt próbáltam nagyon érdekel és kíváncsi vagyok. Ha valaki elmagyarázza megköszönöm.
" Egyébként meg megoldottam mostmár. While true, if ,break-el"
If break?
Súlyos hiba ez.
A while egy elöl-tesztelő ciklus. Nem kell break-elni belőle, mert a feltétel létrejöttével amúgy is vége lesz.
6/7 a W3school-ról tanulok és megnéztem ott is és sima fórUmokon is sehol nem kaptam meg azt, hogy hogy kéne ezt ilyen szöveggel, úgy ahogy én akartam. Csak számokkal és mással volt vagy pedig máshogy. Azzal is meg tudtam volna csinálni de nem az érdekelt.
7/7 Így néz ki most ez a kódsor:
#include <iostream>
using namespace std;
int main() {
string FirstName;
string Feri;
while (true)
{
cout << "Mi a neved \n";
cin >> FirstName;
if(FirstName == "Feri"){
break;}
else {cout << "Te nem Feri vagy. Probald ujra \n";}
};
return 0;
}
Javaslatodra kivettem a break-et és akkor is tovább kérte amikor Ferit írtam.
Baznyeg, ki mondta neked, hogy a 'while (true)' ide jó lesz?
A while egy olyan ciklus, ami egy feltétel bekövetkezéséig fut, ez a feltétel esetedben az, hogy az input megegyezzen a "Feri"-vel.
Ha a bekért string megegyezik a "Feri"-vel, akkor teljesül a feltétel és továbblép a végrehajtás a ciklus után következő kódrészre.
Na lássuk csak:
- a using namespace std; borzalmas szokás
- a változók neveit nem PascalCase-szel hanem camelCase-szel szokás írni C++-ban
- a Feri változód az égvilágon semmit sem csinál
- while (true)?! min futtatod ezt, mikrokontrolleren? És ebbe egy break hogy kijöjjön?!
- szokj hozzá az std::endl kiíratásához, mert sort emel, kiírja a buffer tartalmát, és nem így ragad be semmi.
#include <iostream>
int main() {
std::string firstName;
std::cout << "Mi a neved?" << std::endl;
std::cin >> firstName;
while (firstName != "Feri") {
std::cout << "Te nem Feri vagy. Probald ujra.\nMi a neved?" << std::endl;
std::cin >> firstName;
}
std::cout << "- Milyen Feri?\n- Aki a Katát hátba veri!!!4!4" << std::endl;
return 0;
}
Ilyen szimpatikus stílussal nem viszed majd sokra. Amíg nem vagy valamiből überkirály, inkább legyél alázatos.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!