让它循环回到开头

时间:2016-09-29 02:36:06

标签: c++ loops

我对编码世界很陌生,所以我的编码不是很好。我正在做一个项目,试图让它在计算后循环回到开头。 我不是100%做我正在做的事所以我提前道歉。如果我像这样运行它会给我一个错误,即没有先前的“if”而拥有“else”。我有一个循环,但朋友告诉我,我可以这样做。提前感谢您的提示/建议。[代码] [1]抱歉,我不知道如何在此块中发布代码。编辑,不知道在最后添加什么作为我的while语句使其循环回来。

    #include <iostream>
    using namespace std;

   int main () {
    char C = 'C';
    char c = 'c';
    char x = 'x';
    char X = 'X';
    char s ='s';
    char S ='S';
    char r = 'r';
    char R = 'R';
    char t = 't';
    char T = 'T';
do{
    char C = 'C';
    char c = 'c';
    char x = 'x';
    char X = 'X';
    char s ='s';
    char S ='S';
    char r = 'r';
    char R = 'R';
    char t = 't';
    char T = 'T';
    cout<<"Please enter C for circle , S for square , R for rectangle , T for triangle(right) , X to exit"<<endl;
    cin >> x;
    if ((x==C)||(x==c)){
            cout<<"Please enter radius"<<endl;
            float c1;
            float c2;
            cin>>c1;
            c2=c1*2*3.14;
            cout<<"The Area= "<<c2<<endl;
            }else if ((x==s)||(x==S)) {
                    cout<<"Please enter side"<<endl;
                    float s1;
                    cin>>s1;
                    float s2;
                    s2=s1*2;
                    cout<<"The radius= "<<s2<<endl;
                    }else if ((x==t)||(x==T)) {
                            cout<<"Please enter leg"<<endl;
                            float t1;
                            cin>>t1;
                            cout<<"Please enter leg 2"<<endl;
                            float t3;
                            cin>>t3;
                            float t2;
                            t2=(t3*t1)/2;
                            cout<<"The radius= "<<t2<<endl;
                            }else if ((x==r)||(x==R)){
                                    cout<<"Please enter Width"<<endl;
                                    float w1;
                                    cin>>w1;
                                    cout<<"Please enter Length"<<endl;
                                    float w2;
                                    cin>>w2;
                                    float w3;
                                    w3=w1*w2;
                                    }else ((x==X)||(x==x));{
                                            break;
                                    }
                              }while ((x=!c)||(x=!C)||(x!=s)||(x!=S)||(x!=t)||(x!=T)||(x!=x)||(x!=X)||(x!=r)||(x!=R));
                      }
    }

}

2 个答案:

答案 0 :(得分:1)

问题在于您的第一个else语句,您意外插入了分号。

else ((x==5)||(x==5));

删除分号,你应该没事!

它也应该是else if而不是else。基本上,格式类似于ifelse ifelse

variable=true
if(variable==true) 
{
. // do something
} 

else if(variable==false) 
{
 //do something else
} 
else
{
 // do something else
} 

else声明没有条件。它不能与所有这些相匹配,做到这一点!如果您仍然不了解,this应该让您更好地了解ifelse ifelse陈述

同样,如果你正在努力,请在这里阅读。它解释得很好:

https://www.tutorialspoint.com/cplusplus/cpp_if_else_statement.htm

答案 1 :(得分:0)

您似乎希望这为用户无限重复,并且您尝试使用do-while循环。

do {

// Whatever you're doing

} while (condition);

通常你可以创建某种类型的bool并在你想退出循环时将其设置为true,这样你就可以这样做:

bool getMeOut = false;

do {
    // Some Stuff

    if (condition for exit)
        getMeOut = true;

} while (getMeOut == false);

你将被困在那个循环中,直到你将getMeOut设置为true!

祝你好运!