Я пытаюсь сделать функцию, которая гарантирует, что число больше нуля, но всякий раз, когда пользователь не вводит число больше нуля, он должен ввести значение два раза, прежде чем код будет продолжен. Пожалуйста помоги!
int userInput()
{
int goAhead = 0;
int a;
while (goAhead == 0)
{
cin >> a;
if(a <= 0 )
{
cout << "The can not be less than or equal to zero, enter another value: " << endl;
cin >> a;
cin.ignore();
}
else
{
// enter code here
goAhead = 1;
}
return a;
}
}
Я надеюсь, что это помогает:
int userInput()
{
int a = 0;
while(a <= 0) {
cout << "Enter value greater than zero: " << endl;
cin >> a ;
if(a <= 0)
cout << "Input incorrect. Please try again " << endl;
}
return a;
}
это должно делать то, что вы пытаетесь
int userInput()
{
int a;
cin >> a;
while(a <= 0 )
{
cout << "The can not be less than or equal to zero, enter another value: "<< endl;
cin >> a;
cin.ignore();
}
return a;
}
Попробуйте использовать цикл while
cin>>a;
while(a<=0)
{
System.out.println("Please enter again");
cin>>a;
}
если вы хотите еще 2 раза, просто добавьте счетчик.
Надеюсь, это было полезно.
int userInput()
{
int a;
int tries = 2; // this will count down to 0, which then return anything you want as an invalid answer
do
{
cout << "enter value: ";
cin >> a;
if( a > 0 )
{
return a;
}
else
{
if(--tries > 0)
{
cout << "The can not be less than or equal to zero" << endl;
}
else
{
cout << "returning -1" << endl;
return -1;
}
}
}while (true);
}