嗨我试着做一个while循环,我刚接触编程和在线阅读我真的无法理解它,我用标志显示输入的名称与数据文件中的名称相匹配,我想做这样,在我知道它不匹配之后它再次循环整个事情,我不知道如何实现这一点,
{
clrscr();
cout << "This Is The Option To Delete A Record\n";
char yesno;
char search;
char name[21];
int flag = 0;
cout << "Enter Employee Name : ";
Input(name,20);
for (int r=0;r<row;r++)
{
if( strnicmp(name, emp[r].first_name, strlen(name) ) == 0 )
{
flag = 1;
clrscr();
cout << "Employee Number - " << emp[r].employee_number << endl;
cout << "Name - " << emp[r].first_name << " " << emp[r].surname << endl;
cout << "Department Number - " << emp[r].department_number << endl;
cout << "Week Ending Date - " << emp[r].weekend << endl;
cout << "Delete This Record (Y/N)? : ";
Input(yesno);
yesno = tolower(yesno);
if ( yesno == 'y' )
{
emp[r].deleted = true;
cout << "Record Has Been Deleted";
}
else if ( yesno == 'n')
{
cout << "Record Hasn't Been Deleted";
}
}
}
if (flag == 0)
{
cout << "There Are No Matching Records" << endl;
}
pressKey();
}
答案 0 :(得分:2)
这很简单,所以当一个标志为零时,你想要继续执行它的一堆代码,所以这只是
int flag = 0;
while (flag == 0)
{
// whole bunch of code
}
就是这样,只需用你上面编写的代码替换“整串代码”。
答案 1 :(得分:0)
在while
循环中实现此内容将如下所示:
bool flag=false;
while(!flag){
...
if(<find a match>) flag=true;
}
答案 2 :(得分:0)
所以基本上,你有一个包含一些数据的文件。而且,您接受来自用户的一些数据。 然后在两组的相应字段之间进行比较。
为什么在整个比较(文件处理)完成后你想再做一次?
如果你只是想运行一个无限循环,你可以这样做:
while(true)
{
//your code
}
你也可以用for循环做同样的事情。 forfact for loop和while循环除了语法之外都是相同的。即无限循环。
for (int r=0;r<row;r++)
{
if(r==row-1)
{
r=0;
}
}
我想你想要做的是,一旦一组用户输入与文件内容不匹配,你想要再拍一组并再次匹配它,等等。
所以你不需要为此无限或总是执行循环。
只需将比较模块设为一个单独的函数,该函数应接受一组用户输入。您所做的只是接受用户输入并显示结果。并为用户提供重新输入输入的选项。
以下是您想要的简单算法。
int main()
{
char a='a';
while(a != '~')
{
TakeUserInput();
if(PerformComparison())
{
cout << "Success";
break;
}
}
}
在TakeUserInput()
内,您可以执行所有cin <<
来设置全局数组或全局变量集。另外,您cin << a
,可以随意终止程序。
在PerformComparison()中,您可以在问题中执行此处发布的内容。
答案 3 :(得分:0)
假设您了解for
循环,我认为您可以根据while
和for
的比较轻松理解while
循环。
请参阅,您使用了for
循环:
for (int r=0;r<row;r++){
// do stuff
}
这里有3个关键点。
int r=0
这是你的初始条件。r<row
这是保持循环运行的条件。r++
这是循环每次迭代结束时发生的事情。重新说明上述陈述:
最初考虑
r
等于零,而r
小于row
,请增加r
。
现在我们可以很容易地看到while
循环如何引人注目:)为了实现这一点,请考虑以下while
循环示例:
int r=0; //(1)
while(r<row){ //(2)
//do stuff
r++; //(3)
}
看,现在2个循环几乎完全相同。
如果你想根据一个标志进行操作,你也可以选择无限循环:
while(1==1){
if(some condition)
break;
}
以及无限for
循环:
for(;;){
if(if some condition)
break;
}
同样,2个循环实际上是相同的。