> ## Documentation Index
> Fetch the complete documentation index at: https://docs.exoid.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Espressioni logiche avanzate

> Usa le risposte di un blocco come condizioni di visualizzazione delle opzioni nei blocchi successivi.

Con le espressioni logiche fai "passare" le risposte da un blocco all'altro e le usi come condizioni di visualizzazione: decidi opzione per opzione cosa mostrare in base a quello che il rispondente ha già selezionato. È la stessa logica di *array filter* e *array exclusion*, integrata nel Builder di Exoid.

<Info>
  Serve la **Modalità statistiche avanzate**, che attivi dalle Impostazioni dell'intervista. Vedi [Statistiche avanzate](/it/avanzate/statistiche-avanzate).
</Info>

## Come funziona

Con la modalità attiva riusi le risposte di una domanda nei blocchi successivi. La logica si definisce **sempre nel blocco di destinazione**, richiamando il codice della domanda di origine.

<Warning>
  Imposta il **Codice domanda** (per esempio `D8`) nelle impostazioni del blocco di origine. Se il codice resta al valore di default, l'espressione non può essere valutata e la logica non funziona.
</Warning>

## Esempio completo

Due domande a scelta multipla in sequenza.

<Steps>
  <Step title="D8 - Quale marca di scarpe ti piace di più?">
    Opzioni: Nike, Adidas, Autry, Hogan. Essendo a scelta multipla, le risposte vengono trattate come un insieme di valori.
  </Step>

  <Step title="D9 - Quale acquisti più spesso?">
    Qui vuoi mostrare solo le opzioni che il rispondente ha selezionato nella D8.
  </Step>

  <Step title="Definisci un'espressione per ogni opzione">
    Nelle domande a scelta multipla la condizione va impostata opzione per opzione, non sull'intera domanda.
  </Step>
</Steps>

### Inclusione delle opzioni

Su ciascuna opzione della D9 imposti la condizione di visualizzazione corrispondente.

```text title="Condizioni di visualizzazione sulle opzioni della D9" theme={"dark"}
Nike:    (D8 contains "Nike")
Adidas:  (D8 contains "Adidas")
Autry:   (D8 contains "Autry")
Hogan:   (D8 contains "Hogan")
```

Così ogni opzione della D9 compare solo se la marca corrispondente è stata selezionata nella D8. Se il rispondente sceglie Autry e Adidas, solo quelle due condizioni risultano vere e la D9 mostra soltanto quelle opzioni.

### Logica di esclusione

Puoi anche nascondere un'opzione quando una determinata risposta è presente, negando l'espressione.

```text title="Mostra Nike solo se NON e' stata selezionata nella D8" theme={"dark"}
!(D8 contains "Nike")
```

### Caso scelta singola

Se la D8 fosse a scelta singola, il confronto sarebbe diretto invece che su un insieme.

```text title="Confronto diretto" theme={"dark"}
D8 === "Nike"
```

## Far passare solo opzioni specifiche

Se vuoi far passare solo alcune opzioni e bloccare tutte le altre, imposti la logica in modo opposto: `contains` sulle opzioni che devono passare, negazione su tutte le altre.

Esempio: far passare una tra Adidas e Autry (se selezionata) e una tra Nike e Hogan (se **non** selezionata).

```text title="Espressioni sul blocco di destinazione" theme={"dark"}
Q8 contains "Adidas"
Q8 contains "Autry"
!(Q8 contains "Nike")
!(Q8 contains "Hogan")
```

## Operatori usati

| Operatore  | Sintassi                | Quando usarlo                                                                       |
| ---------- | ----------------------- | ----------------------------------------------------------------------------------- |
| `contains` | `D8 contains "Nike"`    | Verifica se un valore è tra le risposte di una domanda a scelta multipla.           |
| `!(...)`   | `!(D8 contains "Nike")` | Nega la condizione: mostra l'opzione solo se il valore **non** è stato selezionato. |
| `===`      | `D8 === "Nike"`         | Confronto diretto su una domanda a scelta singola.                                  |

## Prossimi passi

<CardGroup cols={2}>
  <Card title="Trasporto delle opzioni" icon="arrow-right-left" href="/it/logica/trasporto-opzioni">
    Riporta automaticamente le risposte di una domanda nella successiva, senza scrivere espressioni.
  </Card>

  <Card title="Logiche e condizioni" icon="git-branch" href="/it/logica/condizioni">
    Costruisci i percorsi dell'intervista con il sistema Go To.
  </Card>
</CardGroup>


## Related topics

- [Modalità statistiche avanzate](/it/avanzate/statistiche-avanzate.md)
- [Trasporto delle opzioni](/it/logica/trasporto-opzioni.md)
- [Cosa puoi fare con Exoid](/it/funzionalita.md)
