我正在尝试编写一个计算素数的程序,并且遇到了我正在使用的do-while-loop问题。Do-While-loop问题
代码:
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
unsigned long int lower_limit;
unsigned long int upper_limit;
cout << "\n" << "Program calculates prime numbers in a given range between 2 and 4.294.967.295.";
cout << "\n" << "Input range in which prime numbers are to be calculated... ";
do
{
cout << "\n\n" << "Lower Limit:\t"; cin >> lower_limit;
cout << "\n" << "Upper Limit:\t"; cin >> upper_limit;
if(lower_limit >= upper_limit)
{
cout << "\nInvalid Input: Value of Upper Limit has to be bigger than value of Lower Limit.";
cout << "\nSelect new numbers.";
}
if(!(cin >> lower_limit) || !(cin >> upper_limit))
{
cout << "\nInvalid Input: Values of Lower Limit and Upper Limit have to be integers.";
cout << "\nSelect new numbers.";
}
}while(lower_limit >= upper_limit || !(cin >> lower_limit) || !(cin >> upper_limit));
return(0);
}
如果我输入值触发Lower Limit >= Upper Limit
它触发的第一个错误正确,但不事后重复DO-while循环,不关闭程序(返程(0 ))要么...因此该程序不会重复执行循环,程序也不会退出循环。我真的不知道它实际上在那里做了什么。
如果我输入值触发!(cin >> lower_limit) || !(cin >> upper_limit)
(“ADFD”等)的整个程序只是去心理和快速重复DO-while循环,甚至忽略了cin >> lower_limit;
和cin >> upper_limit;
语句。
有没有人有一个想法可以帮助我?
干杯!
你'CIN> > lower_limit'三次循环中,您可能会存储结果以避免重新读取值。 – Jarod42
'“\ n \ n”<<“下限:\ t' - *** ??? ***为什么不是'”\ n \ n下限:\ t'? – 2013-12-21 11:00:09