Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    system.out.print(a + (a != 10 ? ", " : ""));

    Sto studiando Java dal libro Java 7 - Guida completa.

    Ad un certo punto (sono ancora agli inizi) mi ritrovo questa sintassi:

    system.out.print(a+ (a != 10 ? ", " : ""));

    chi me la spiega? Ovviamente so che il system.out.print serve a scrivere a schermo il contenuto della variabile a, ma non capisco il listato tra parentesi (a diverso da 10???) e nel libro non è spiegato.


    Grazie

  2. #2
    "Smontiamo" l'espressione:
    • a!=10 è un'espressione booleana, vale True se a è diverso da 10, False in caso contrario
    • x?y:z è l'operatore ternario; se x è True, restituisce y, in caso contrario restituisce z

      Quindi, l'espressione
      codice:
      a != 10 ? ", " : ""
      vale ", " se a è diverso da 10, "" se a è uguale a 10.
    • a+ (a != 10 ? ", " : ""), quindi, "somma" ad a ", " o una stringa vuota, a seconda che a sia o meno uguale a 10. In entrambi i casi, sommare un intero ad una stringa ha l'effetto di convertire l'intero in una stringa, e quindi di concatenare i due operandi

    Ergo, il codice in questione stampa a seguito da una virgola e uno spazio quando a è diverso da 10, e stampa invece soltanto a quando esso è uguale a 10. Suppongo che il codice in questione sia contenuto all'interno di un ciclo for che si arresta quando a arriva a 10; in tal caso, il codice in questione fa sì che vengano stampati i vari valori di a separati da virgola, senza però aggiungere un'inutile virgola dopo l'ultimo valore da stampare.
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Ciao, grazie della risposta, molto esaustiva!

    Un unico dubbio, quel "+" che tu definisci di "somma" sarebbe una concatenazione, esatto (che stress quando non vengono spiegate queste cose, anche sommariamente)?

    E' all'interno di un ciclo while.

  4. #4
    Sì, in generale + applicato a stringhe agisce da operatore di concatenazione.

    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da supergeniux
    Ciao, grazie della risposta, molto esaustiva!

    Un unico dubbio, quel "+" che tu definisci di "somma" sarebbe una concatenazione, esatto (che stress quando non vengono spiegate queste cose, anche sommariamente)?

    E' all'interno di un ciclo while.
    Ho qualche dubbio che un libro come Java 7 - Guida completa non spieghi queste cose..
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  6. #6

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.