c++ - Replacing the goto Statement -
i have limited experience c++ , wanted replace "goto" construct code. suggestion refactoring too
int main() { int count; int countsub = 0; int usercount = 0; int rolecount = 0; int parentgroup; cout<<"enter number of parentgroup"<< endl; cin>> parentgroup; int subgroup; cout<<"enter number sub group"<< endl; cin>> subgroup; int rolepergroup; cout<<"enter number role per sub group"<< endl; cin>> rolepergroup; int userpergroup; cout<<"enter number user per role"<< endl; cin>> userpergroup; { if (parentgroup == 0) { cout<<"error"<<endl; exit(exit_failure); } else { for(count=1;count <= parentgroup; count ++) { { if(subgroup == 0) goto hello; else { for(countsub = 1;countsub<=subgroup; countsub ++) { { hello: if (rolepergroup == 0) { cout<<"error"<<endl; exit(exit_failure); } else { for(rolecount = 1; rolecount<=rolepergroup; rolecount ++) { { if(userpergroup == 0) goto print; else { for(usercount = 1; usercount<=userpergroup; usercount ++) { print: cout<<"parent groups are: "<< count <<" | "<<"sub group : "<<countsub<<" | "<<"role per sub group : "<< rolecount <<" | "<<"user per role : "<< usercount <<endl; }} usercount --; }while(usercount < 0); }} rolecount --; }while(rolecount < 0); }} countsub --; }while(countsub < 0); }} count --; }while(count < 0); }
please let me know if missed something
#include "stdafx.h" #include <iostream> using namespace std; void print(int count, int countsub, int rolepergroup, int usercount, int userpergroup) { for(int rolecount = 1; rolecount<=rolepergroup; rolecount ++) { if(userpergroup == 0) { cout<<"parent groups are: "<< count <<" | "<<"sub group : "<<countsub<<" | "<<"role per sub group : "<< rolecount <<" | "<<"user per role : "<< usercount <<endl; continue; } for(usercount = 1; usercount<=userpergroup; usercount ++) cout<<"parent groups are: "<< count <<" | "<<"sub group : "<<countsub<<" | "<<"role per sub group : "<< rolecount <<" | "<<"user per role : "<< usercount <<endl; } } int main() { int usercount = 0; int rolecount = 0; int parentgroup; cout<<"enter number of parentgroup"<< endl; cin>> parentgroup; if (parentgroup == 0) { cout<<"parent group should not zero"<<endl; exit(exit_failure); } int subgroup; cout<<"enter number sub group"<< endl; cin>> subgroup; int rolepergroup; cout<<"enter number role per sub group"<< endl; cin>> rolepergroup; if (rolepergroup == 0) { cout<<"role per group should not zero"<<endl; exit(exit_failure); } int userpergroup; cout<<"enter number user per role"<< endl; cin>> userpergroup; for(int count=1;count <= parentgroup; count ++) { if(subgroup == 0) { print( count, 0, rolepergroup, usercount, userpergroup); continue; } for(int countsub = 1;countsub<=subgroup; countsub ++) { print( count, countsub, rolepergroup, usercount, userpergroup); } } }
Comments
Post a Comment