Visualizzazione dei risultati da 1 a 7 su 7

Discussione: problema ciclo while

  1. #1

    problema ciclo while

    ciao

    ho il seguente probema :
    ho scritto il codice sotto indicato , nel quale dentro il ciclo while (boolean_1) == thrue ..
    faccio delle operazioni , per esempio chiedo dei dati da pop-up , ecc. ,
    poi faccio la richiesta se voglio terminare il ciclo while ;
    mi sembra che non esca dal ciclo anche se rispondo 'N' ,
    faccio qualche errore strano ?

    grazie , ciao

    codice:
    public class nomeClasse 
    {
    
       public static void main (String[] args)  {  
    
         /*  elenco variabili  */ 
    
          String campo_string  = " " ;
          char   campo_char    = ' ' ;
          boolean boolean_1 = true ;       
          
          
          while (boolean_1 == true)  
             {
    
             /* elaborazione . . .   */
    
    
             /**  controllo ciclo elaborazione  */
         
             campo_string  = JOptionPane.showInputDialog("continuare (S/N)") ;    
             campo_char    = campo_string1.charAt(0) ;    
             if (campo_char == 'N') 
                 boolean_1 = false ; 
        
             }       
    
          System.exit(0) ;  
    
          }  /* fine void main */
      
    }
    perchè se rispondo 'N' alla domanda : continuare (S/N)
    non esco dal while ?

    grazie
    ciao

  2. #2
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,589
    Maiuscole e minuscole?!
    La scritta n (non N) nel tuo programma non viene controllata...

    P.s. non ho letto approfonditamente è solo un presentimento.

  3. #3
    scusa , ho controllato ma non vedo errori ; aggiungo del codice ;

    codice:
    import java.util.*;
    import java.lang.*;
    import java.awt.*;
    import javax.swing.*;
    // classe main 
    public class CalcolatriceNew 
    {
    
       public static void main (String[] args)  {  
    
          int len_1 ; 
          int len_2 ;       
    
          char campo_char = ' ' ;
          int campo_int1  = 0 ; 
          int campo_int2  = 0 ; 
          int campo_int3  = 0 ;  
          String campo_string  = " " ;
          String campo_string1 = " " ;
          String campo_string2 = " " ; 
          String campo_string3 = " " ;
          boolean boolean_1 = true ;       
          boolean boolean_2 = true ;
          
          
          while (boolean_1 == true)  
             {
    
             /**  richiesta primo numero  */
    
             campo_string  = "inserire primo numero : " ; 
             campo_int1    = CalcolatriceNewDomande.numero(campo_string) ; 
    
             /**  richiesta operazione    */
    
             campo_string  = "inserire operazione da effettuare : +,-,*,/" ; 
             campo_char    = CalcolatriceNewDomande.operazione(campo_string) ; 
    
             /**  richiesta secondo numero  */
    
             campo_string  = "inserire secondo numero : " ; 
             campo_int2    = CalcolatriceNewDomande.numero(campo_string) ; 
    
             /**  controllo ciclo elaborazione  */
         
             campo_string  = JOptionPane.showInputDialog("continuare (S/N)") ;    
             campo_char    = campo_string1.charAt(0) ;    
             if (campo_char == 'N') 
                 boolena_1 = false ; 
        
             }
            
          System.exit(0) ;  
    
          }  /* fine void main */
     
    }
    codice:
    import java.util.*;
    import java.lang.*;
    import java.awt.*;
    import javax.swing.*;
    //classe richiamata
    public class CalcolatriceNewDomande 
    {
       private static int    campo_int1    ; 
       private static char   campo_char1   ; 
       private static String campo_string1 ;
       private static String campo_string2 ; 
       private static String campo_string3 ;
    
       public static  ()  
          {  
           campo_int1    = 0 ; 
           campo_char1   = ' ' ; 
           campo_string1 domanda ;
           campo_string2 = " " ; 
           campo_string3 domanda ;
          } 
    
    
       public static int numero (String domanda)  
          {  
         //  campo_string1 = domanda ;
         //  campo_string3 = domanda ;
           while ( campo_int1 == 0 )  
              {  
               try  {  
                     campo_string2 = JOptionPane.showInputDialog(campo_string1) ;   
                     campo_int1    = Integer.parseInt (campo_string2) ;  
                     System.out.println(domanda + campo_int1) ; 
                     return (campo_int1)
                    }  
               catch(Exception a) 
                    {  
                     campo_string1 = "valore non numerico : " + campo_string2 + " , " + campo_string3 ; 
                     campo_int1 = 0 ; 
                     a.printStackTrace() ; 
                    }      
              } 
    
          } 
    
    
       public static char operazione (String domanda)  
          {  
         //  campo_string1 = domanda ;
         //  campo_string3 = domanda ;
           while ( campo_char1 == ' ' )  
              {  
               try  {  
                     campo_string2 = JOptionPane.showInputDialog(campo_string1) ;   
                     campo_char1    = campo_string2.charAt(0) ;   
                     System.out.println(domanda + campo_char1) ; 
                     return (campo_char1)
                    }  
               catch(Exception a) 
                    {  
                     campo_string1 = "valore errato : " + campo_string2 + " , " + campo_string3 ; 
                     campo_char1 = ' ' ; 
                     a.printStackTrace() ; 
                    }       
              } 
    
          } 
       
    }
    le classi stanno su file diversi ,

    ho visto che non funziona il test per uscrire dalla classe main ,
    inoltre vanno bene le richieste del primo numero e del tipo operazione ,
    però viene saltata la richiesta del 2o numero , il campo assume lo stesso
    valore del rpimo ;

    perchè ?

    grazie mille

    ciao

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320

    Moderazione

    Quando si posta del codice si devono usare gli appositi tag CODE previsti dal forum e richiesti dal regolamento interno... altrimenti il codice diventa tutto illeggibile.

    Cerco di sistemare io i tuoi precedenti post.

    Comunque... qui c'è qualcosa che non va

    codice:
             campo_string  = JOptionPane.showInputDialog("continuare (S/N)") ;    
             campo_char    = campo_string1.charAt(0) ;
    Prendi l'input e lo metti in "campo_string"... poi cerchi di estrarre il primo carattere dalla stringa in "campo_string1", che non mi pare venga mai valorizzata, se non nella sua inizializzazione a spazio...


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  5. #5
    chiedo scusa

    però non sono riuscito a trovare i tag ...

    ciao

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Originariamente inviato da gbu123
    però non sono riuscito a trovare i tag ...
    C'è un pulsante chiamato "CODE", dove ci sono i controlli per il grassetto, il corsivo, ecc, ma quello andrebbe usato solo se si ha una sola riga di codice.
    In qualunque caso, è sufficiente scriverli a mano...

    [CODE]
    poi incolli qui tutto il codice
    [/CODE]

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  7. #7
    grazie mille

    ciao

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.