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

    [JAVA] Problema con condizione dentro un ciclo e conteggio consecutivo

    Io ho questo ciclo:
    codice:
    private String title3;
      private TimeSeries  series1;
      private String conf="";
    
    ResultSet result = select.executeQuery("Select * FROM DB");
            conta=0;
          	while (result.next()) {
                                    String tempo = result.getString(2);
            			double temp_a = result.getDouble(3);
            			DateFormat dateformat=new SimpleDateFormat("yyyy/MM/dd HH.mm.ss");       			
            			java.util.Date data=dateformat.parse(tempo);       	
            			series.addOrUpdate(new Second(data),temp_a);
                                     if(title3.equals(conf)){ }
                                     else{ 
                                        series1.addOrUpdate(new Second(data),alta);  
                                         }   
    
                                        if(temp_a>alta){
    
                                                   conta++;                              
                                        }                                 for (int i=0; i < rileva-1; i++){
                                    result.next();
                                                                }
       								}
          	}
    il problema è nella parte arancione...perchè io dovrei verificare se quella condizione si verifica di seguito per un certo numero di passaggi (es per 10) e non so come fare a dirglieglo...
    Io così riesco a contare quante volte si verifica quela condizione in TOTALE, ma senza sapere quante volte di fila accade....
    c'è un modo per riuscire a fare ciò?
    Ossia contare le volte di fila che accade quella condizione IF??

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: [JAVA] Problema con condizione dentro un ciclo e conteggio consecutivo

    Originariamente inviato da xxdavide84xx
    Io così riesco a contare quante volte si verifica quela condizione in TOTALE, ma senza sapere quante volte di fila accade....
    Metti una variabile che fa da "contatore". Se la condizione è true incrementi il contatore, se la condizione è false lo azzeri.
    Ogni volta che incrementi puoi anche testare se il contatore ha raggiunto un certo valore che ti interessa.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Come vedi il contatore l'ho messo, ma forse l'ho messo in maniera ERRATA....
    mi aiuti 2 minuti a capire come risolvere...

    perchè col contatore che ho io lui mi incrementa sempre....
    invece io devo riuscire a incrementare se la condizione IF si verifica un tot di volte consecutivamente...ed azzerarla appena c'è un punto che soddisfa la condizione, ma col WHILE non riesco a farcela.....
    ho forse qualche problema a capire l'annidamente dei cicli....perchè ci provo da 1 ora, ma non riesco a risolvere...

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da xxdavide84xx
    invece io devo riuscire a incrementare se la condizione IF si verifica un tot di volte consecutivamente...ed azzerarla appena c'è un punto che soddisfa la condizione
    Ah ok, un pochino diverso da come avevo capito (pensavo che ti serviva solo trovare quando la condizione si ripete per X volte). Se ho capito bene, tu vuoi che il contatore si incrementi solo quando la condizione è true per X volte consecutive. Anche questo si può fare ma hai bisogno di 2 contatori!

    codice:
    int ripetizioni = 0, contatore = 0;
    
    .....
    
        if (condizione) {
            ripetizioni++;
    
            if (ripetizioni == 10) {   // esempio per trovare 10 condizioni a 'true' consecutive
                contatore++;
                ripetizioni = 0;
            }
        }
        else
            ripetizioni = 0;
    ....
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Facendo così non ottengo lo stesso risultato?
    Io metto int conta=0 fuori dal WHILE......quindi a meno che non entri nell'else non si azzera!
    codice:
     int conta=0;
    if(condizione){                                       
                       conta++;    
                       if(conta>= 10){
                           //ALLARME!!!
                                          } 
    
                                          } 
                      else{  //dell'IF(condizione)
                             conta=0;                              
                              }
    Pensi che sia meglio fare come dici tu?
    Io il numero di ripetizioni voglio che siano maggiori di un determinato numero...

    Adesso il problema ultimo e successivo sarà creare una finestra di POPUP che genera un allarme

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da xxdavide84xx
    Facendo così non ottengo lo stesso risultato?
    Ma è la stessa cosa che avevo spiegato all'inizio! Chiariamoci bene: una cosa è trovare quando una condizione si ripete consecutivamente X o più volte e un'altra cosa, leggermente diversa, è incrementare un contatore solo quando la condizione si ripete consecutivamente X o più volte.

    Nel primo caso, è la mia prima risposta, nel secondo caso, è la mia seconda risposta con codice.

    Originariamente inviato da xxdavide84xx
    Adesso il problema ultimo e successivo sarà creare una finestra di POPUP che genera un allarme
    Magari con JOptionPane.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    Sottile differenza a cui è difficile capire..
    Io dovrei creare tipo un allert che mi compare è mi da indicazioni, magari con un pulsante su cui possa visualizzare i dati che verificano la determinata condizione...

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.