# Parentesi errore che non comprendo

**URL:** <https://forum.olinfo.it/t/parentesi-errore-che-non-comprendo/4883>\
**Category:** Aiuto\
**Created:** [11 Novembre 2017, 5:18pm UTC](https://forum.olinfo.it/t/parentesi-errore-che-non-comprendo/4883 "2017-11-11T17:18:18Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Alby1](https://forum.olinfo.it/letter_avatar_proxy/v4/letter/a/48db29/32.png) [@Alby1](https://forum.olinfo.it/u/Alby1)\
**Post date:** [11 Novembre 2017, 5:18pm UTC](https://forum.olinfo.it/t/parentesi-errore-che-non-comprendo/4883/1 "2017-11-11T17:18:18Z")

</div>

Ho scritto questo codice ma non capisco perchè ogni volta che inserisco una parentesi quella successiva nonostante secondo lo switch non debba essere considerata ritorna -1.

```
    int controlla(int N, char E[]) {
    char prec=E[0];
    if(N%2!=0) return -1;
    for(int i=0;i<N-1;i++){
    prec=E[i];
    switch(prec){
    case '<':if (E[i+1]=='}'||E[i+1]==')'||E[i+1]==']') return -1;
    case '(':if (E[i+1]=='}'||E[i+1]==']'||E[i+1]=='>') return -1;
    case '{':if (E[i+1]==')'||E[i+1]==']'||E[i+1]=='>') return -1;
    case '[':if (E[i+1]=='}'||E[i+1]==')'||E[i+1]=='>') return -1;
    }
    }
    return 0;
    }

```

Grazie in anticipo

---

<div class="post-metadata">

**Author:** ![Niero.Filippo](https://forum.olinfo.it/letter_avatar_proxy/v4/letter/n/e19b73/32.png) [@Niero.Filippo](https://forum.olinfo.it/u/Niero.Filippo)\
**Post date:** [11 Novembre 2017, 5:50pm UTC](https://forum.olinfo.it/t/parentesi-errore-che-non-comprendo/4883/2 "2017-11-11T17:50:11Z")

</div>

Ti sei dimenticato i break, forse è quello.

---

<div class="post-metadata">

**Author:** ![Rickie](https://forum.olinfo.it/letter_avatar_proxy/v4/letter/r/e8c25b/32.png) [@Rickie](https://forum.olinfo.it/u/Rickie)\
**Post date:** [11 Novembre 2017, 5:52pm UTC](https://forum.olinfo.it/t/parentesi-errore-che-non-comprendo/4883/3 "2017-11-11T17:52:56Z")

</div>

Ciao,  
ho controllato il tuo codice ed effetivamente la funzione ritornava -1 anche se doveva ritornare 0.  
Ho provato a mettere dei break alla fine dei case e adesso la funzione ritorna il risulato corretto…

//ECCO IL CODICE  
int controlla(int N, char E[]) {  
char prec=E[0];  
if(N%2!=0) return -1;  
for(int i=0;i\<N-1;i++){  
prec=E[i];  
switch(prec){  
case ‘\<’:if (E[i+1]==’}’||E[i+1]==’)’||E[i+1]==’]’) return -1;break;  
case ‘(’:if (E[i+1]==’}’||E[i+1]==’]’||E[i+1]==’\>’) return -1;break;  
case ‘{’:if (E[i+1]==’)’||E[i+1]==’]’||E[i+1]==’\>’) return -1;break;  
case ‘[’:if (E[i+1]==’}’||E[i+1]==’)’||E[i+1]==’\>’) return -1;break;  
}  
}  
return 0;  
}

---

<div class="post-metadata">

**Author:** ![Alby1](https://forum.olinfo.it/letter_avatar_proxy/v4/letter/a/48db29/32.png) [@Alby1](https://forum.olinfo.it/u/Alby1)\
**Post date:** [11 Novembre 2017, 6:19pm UTC](https://forum.olinfo.it/t/parentesi-errore-che-non-comprendo/4883/4 "2017-11-11T18:19:43Z")

</div>

Ho sottoposto e mi da errore del server, appena si sistema dovrebbe andare grazie.
