"Illegal Break"时'Outputting Multiples of a Number, Input 0 or Non # to exit'
"Illegal Break" when 'Outputting Multiples of a Number, Input 0 or Non # to exit'
初级程序员。我的任务是输出无符号正数的倍数,并使用0或非#退出程序。程序运行示例:
12
1 2 3 4 6 12
1
1
100
1 2 4 5 10 20 25 50 100
0
再见!
到目前为止,我的代码似乎运行良好。然而,我想用一个"break"来代替我使用的"die"命令。问题是,当我去写一个break而不是die时,我会遇到一个错误("非法break")。如何重写此代码以正确地使用后跟cout<lt;"再见!"?
int main(){
unsigned i, n;
cout <<"Positive #: ";
if ( !(cin >>n ) || n == 0 ) die ( "Goodbye!" );
for ( i = 1; i <= n; i++ ){
if ( n%i == 0 )
cout <<i <<" ";
}
cout <<endl;
}
您需要有某种外部循环,它会导致"Positive#:"行被连续输出,这样用户就可以为您提供多个条目。在您当前的设置中,用户应该只能输入一个数字,然后您的程序应该终止(这不是所需的行为)。
int main(){
unsigned i, n;
while(true)
{
cout <<"Positive #: ";
if ( !(cin >>n ) || n == 0 ) break;
for ( i = 1; i <= n; i++ ){
if ( n%i == 0 )
cout <<i <<" ";
}
}
cout << "Goodbye!";
cout <<endl;
}
或者,您可以重构代码,以便在循环结束时打印查询(在循环开始前打印一次),并将"if"中的条件移到"while"中,在这种情况下,您甚至不需要使用break语句。
break
只在循环内部工作-它在循环外部中断。您希望从主函数返回,因此请使用return
。
当然,return
不会打印任何东西,所以你最好打印:
if( ... exit condition... )
{
cout << "Goodbye!" << endl;
return 0;
}
相关文章:
- "input.length();"的目的是什么?
- 如何使用"derived input class"创建派生类?
- 我如何测试代码没有调用 exit()
- exit(0) 和 raise(SIGTERM) 有什么区别?
- "Program ended with exit code: 0"出现在我的输出的开头?
- 开放CV垫"Sizes of input arguments do not match"的问题
- exit(EXITT_FAILURE)在c和c++中是如何工作的
- 在C++中使用exit()退出程序有问题吗
- 什么是"Reading unbounded stream from standard input (Memory Management)"的例子
- 如何检查输入是否为字符并显示它是"invalid input",否则它将按原样运行
- 输出 [left]=input[i] 行中的 c++ 代码中存在无效的类型错误
- 什么时候在 c++ 中使用 exit() 与异常更好?
- "ndk-build finish with non-zero exit value 2" 在编译文本仙女项目时
- 无法在"surface input"模式下使用 Android 平台的 MediaCodec 类
- 当可以返回错误/异常时,从库中终止调用程序(例如,调用exit())是否总是错误的?
- 我在C++中收到错误" [Error] ld returned 1 exit status".帮我解决这个问题
- 为什么错误"permission denied","id returned 1 exit status"仅在 IM 使用 C++ 中的头文件 fstream 时才出现
- CMD:程序.exe 1< "A:/input.txt"产生无输出
- mmap with /dev/input/event*
- "Illegal Break"时'Outputting Multiples of a Number, Input 0 or Non # to exit'