Scrivere l'equivalente di più if con un ciclo

di il
11 risposte

Scrivere l'equivalente di più if con un ciclo

Ho una serie di if e volevo scrivere l'equivalente di tutti gli if con un solo ciclo. Come posso fare?
Ecco gli if:

for (int i=0; i<strlen(pari); i++) {
        if (strncmp(&pari[i], "0", 1)==0)
            val_pari+=0;
        if (strncmp(&pari[i], "1", 1)==0)
            val_pari+=1;
        if (strncmp(&pari[i], "2", 1)==0)
            val_pari+=2;
        if (strncmp(&pari[i], "3", 1)==0)
            val_pari+=3;
        if (strncmp(&pari[i], "4", 1)==0)
            val_pari+=4;
        if (strncmp(&pari[i], "5", 1)==0)
            val_pari+=5;
        if (strncmp(&pari[i], "6", 1)==0)
            val_pari+=6;
        if (strncmp(&pari[i], "7", 1)==0)
            val_pari+=7;
        if (strncmp(&pari[i], "8", 1)==0)
            val_pari+=8;
        if (strncmp(&pari[i], "9", 1)==0)
            val_pari+=9;
        if (strncmp(&pari[i], "a", 1)==0)
            val_pari+=0;
        if (strncmp(&pari[i], "b", 1)==0)
            val_pari+=1;
        if (strncmp(&pari[i], "c", 1)==0)
            val_pari+=2;
        if (strncmp(&pari[i], "d", 1)==0)
            val_pari+=3;
        if (strncmp(&pari[i], "e", 1)==0)
            val_pari+=4;
        if (strncmp(&pari[i], "f", 1)==0)
            val_pari+=5;
        if (strncmp(&pari[i], "g", 1)==0)
            val_pari+=6;
        if (strncmp(&pari[i], "h", 1)==0)
            val_pari+=7;
        if (strncmp(&pari[i], "i", 1)==0)
            val_pari+=8;
        if (strncmp(&pari[i], "j", 1)==0)
            val_pari+=9;
        if (strncmp(&pari[i], "k", 1)==0)
            val_pari+=10;
        if (strncmp(&pari[i], "l", 1)==0)
            val_pari+=11;
        if (strncmp(&pari[i], "m", 1)==0)
            val_pari+=12;
        if (strncmp(&pari[i], "n", 1)==0)
            val_pari+=13;
        if (strncmp(&pari[i], "o", 1)==0)
            val_pari+=14;
        if (strncmp(&pari[i], "p", 1)==0)
            val_pari+=15;
        if (strncmp(&pari[i], "q", 1)==0)
            val_pari+=16;
        if (strncmp(&pari[i], "r", 1)==0)
            val_pari+=17;
        if (strncmp(&pari[i], "s", 1)==0)
            val_pari+=18;
        if (strncmp(&pari[i], "t", 1)==0)
            val_pari+=19;
        if (strncmp(&pari[i], "u", 1)==0)
            val_pari+=20;
        if (strncmp(&pari[i], "v", 1)==0)
            val_pari+=21;
        if (strncmp(&pari[i], "w", 1)==0)
            val_pari+=22;
        if (strncmp(&pari[i], "x", 1)==0)
            val_pari+=23;
        if (strncmp(&pari[i], "y", 1)==0)
            val_pari+=24;
        if (strncmp(&pari[i], "z", 1)==0)
            val_pari+=25;
        if (strncmp(&pari[i], "\0", 1)==0)
            val_pari+=0;
    }
Ho provato a scriverli con questo ciclo ma risulta errato

char num='0', chr='a';
    int i3=0;
    for (int i=0; i<strlen(pari); i++) {
        while (atoi(&num)<=9) {
            if (strncmp(&pari[i], &num, 1)==0)
                val_pari+=atoi(&num);
            num++;
            i3++;
        }
        num='0';
        i3=0;
        while (i3<=25) {
            if (strncmp(&pari[i], &chr, 1)==0)
                val_pari+=atoi(&num);
            chr++;
            i3++;
        }
    }
Aiutatemi, come posso modificare il codice affinchè risulti corretto? Grazie

11 Risposte

Devi accedere o registrarti per scrivere nel forum
11 risposte