Autore Topic: int[] intArray (valore max e recupero posizione array in string)  (Letto 153 volte)

Offline xwilly84

  • Nuovo arrivato
  • *
  • Post: 27
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Huawei p9 lite
  • Play Store ID:
    Luca Chirichella
  • Sistema operativo:
    Win 8.1 x64
int[] intArray (valore max e recupero posizione array in string)
« il: 10 Ottobre 2017, 16:11:20 CEST »
0
Allora ragazzi sono bloccato su una questione.
Ho un Array int formato da 3 variabili che contengono dati ripresi da cursor.getInt(0); creati adhoc.
Vorrei creare un ciclo for che mi restituisca il valore più alto delle tre variabili e di conseguenza recuperare l'etichetta in string (posizione).
Codice (Java): [Seleziona]
int[] intArray = new int[] {number_1, number_2, number_3};
Grazie in anticipo. ;-)

Offline berpao

  • Utente junior
  • **
  • Post: 76
  • Respect: +5
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S2
  • Play Store ID:
    Paolo Bersan
Re:int[] intArray (valore max e recupero posizione array in string)
« Risposta #1 il: 10 Ottobre 2017, 17:24:04 CEST »
+1
Ciao,
scusa ma intendi una cosa del genere

Codice (Java): [Seleziona]
        int[] intArray = new int[] {1, 5, 3, 6,4,0};
        int maxVal=-1;
        for (int k=0;k<intArray.length;k++) {
            if (intArray[k]>maxVal) {
                maxVal=intArray[k];
            }
        }

maxVal alla fine avrà il valore più alto tra quelli nell'array.
« Ultima modifica: 10 Ottobre 2017, 17:26:04 CEST da berpao »

Offline xwilly84

  • Nuovo arrivato
  • *
  • Post: 27
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Huawei p9 lite
  • Play Store ID:
    Luca Chirichella
  • Sistema operativo:
    Win 8.1 x64
Re:int[] intArray (valore max e recupero posizione array in string)
« Risposta #2 il: 10 Ottobre 2017, 17:52:30 CEST »
0
Ok forse ho risolto così, anche se il metodo switch così usato non mi convince molto, però la cosa sembra funzionare.
Codice: [Seleziona]
int[] intArray = new int[] {get_countCursorRangeBasso, get_countCursorRangeMedio, get_countCursorRangeAlto};

                        int maxVal = -1;
                        int pos = 0;
                        String return_intArray = "";

                        for(int i = 0; i < intArray.length; i++) {

                                if (intArray[i]>maxVal) {
                                maxVal = intArray[i];
                                pos = i;
                                }else{
                                maxVal = intArray[i];
                                pos = 3;
                                }

                                va_range_laurea = maxVal;
                        }


                        switch (pos){

                                case 0: //posizione intArray get_countCursorRangeBasso
                                return_intArray = "basso 18 e 22";
                                break;

                                case 1: //posizione intArray get_countCursorRangeMedio
                                return_intArray = "medio 23 e 26";
                                break;

                                case 2: //posizione intArray get_countCursorRangeAlto
                                return_intArray = "alto 27 e 30";
                                break;

                                case 3: //posizione 3 se intArray[i] non è maggiore di maxVal
                                return_intArray = "nessun range";
                                break;

                                default:
                                        break;
                        }

                        /////////////////////////////////////////////////////////////////////
                        // message range
                        /////////////////////////////////////////////////////////////////////

                        String ms_range = "va_range + " rientrano nel tuo attuale range "+ return_intArray + ".";
Magari esiste un altro modo per recuperare la posizione e riportare tutto nella string finale?
« Ultima modifica: 10 Ottobre 2017, 18:25:48 CEST da xwilly84 »

Offline capitancooker

  • Utente junior
  • **
  • Post: 104
  • Marco
  • Respect: +10
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5, Asus Zenpad S 8.0
  • Sistema operativo:
    macOS Sierra
Re:int[] intArray (valore max e recupero posizione array in string)
« Risposta #3 il: 10 Ottobre 2017, 19:02:39 CEST »
+1
Semplificherei così:

Codice (Java): [Seleziona]
        int[] intArray = new int[] {get_countCursorRangeBasso, get_countCursorRangeMedio, get_countCursorRangeAlto};
        String range[] = new String[]{"basso 18 e 22","medio 23 e 26","alto 27 e 30","nessun range"};

        int va_range = -1;
        int pos = 3;

        for(int i = 0; i < intArray.length; i++) {

                if (intArray[i]>va_range) {
                        va_range = intArray[i];
                        pos = i;
                }

        }

        String ms_range = va_range + " rientrano nel tuo attuale range "+ range[pos] + ".";  

Ciao,
Marco
Se sbaglio, correggetemi.

Offline xwilly84

  • Nuovo arrivato
  • *
  • Post: 27
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Huawei p9 lite
  • Play Store ID:
    Luca Chirichella
  • Sistema operativo:
    Win 8.1 x64
Re:int[] intArray (valore max e recupero posizione array in string)
« Risposta #4 il: 10 Ottobre 2017, 19:17:08 CEST »
0
ok grazie funziona mi riporta il valore max.
Però c'è un problema: se i valori del mio int[] intArray sono uguali a zero, range[pos]  mi da cmq sempre il valore pos[0] "basso 18 e 22" e non la posizione pos[3] cioè "nessun range".

 
« Ultima modifica: 10 Ottobre 2017, 19:27:51 CEST da xwilly84 »

Offline capitancooker

  • Utente junior
  • **
  • Post: 104
  • Marco
  • Respect: +10
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5, Asus Zenpad S 8.0
  • Sistema operativo:
    macOS Sierra
Re:int[] intArray (valore max e recupero posizione array in string)
« Risposta #5 il: 10 Ottobre 2017, 19:29:21 CEST »
+1
Prova inizializzando va_range a 0 invece che -1.
Se sbaglio, correggetemi.

Offline xwilly84

  • Nuovo arrivato
  • *
  • Post: 27
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Huawei p9 lite
  • Play Store ID:
    Luca Chirichella
  • Sistema operativo:
    Win 8.1 x64
Re:int[] intArray (valore max e recupero posizione array in string)
« Risposta #6 il: 10 Ottobre 2017, 19:44:47 CEST »
0
perfetto adesso tutto funziona correttamente. :-)