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

    break in un loop o uno 'stop' con if per uscire dal programma

    Ciao, sono nuovo.... spero di spiegarmi meglio che posso
    vorrei un aiuto su questo problema...riguardo allo stop all'interno di un 'loop' o con un if.
    questo è il quesito in inglese (molto semplice):
    Read an undetermined number of pairs values M and N (stop when any of these values is less or equal to zero). For each pair, print the sequence from the smallest to the biggest (including both) and the sum of consecutive integers between them (including both).
    io ho scritto in questo modo il risultato:
    var input = require('fs').readFileSync('/dev/stdin', 'utf8');var lines = input.split('\n');var rec = lines[0].split(' ');var a = parseInt(rec[0]);var b = parseInt(rec[1]);var d1 = 0;var j = '';var j1 = 0;var i = 0;if (a<=0||b<=0) { break; }mag(a,b);function mag(a,b) { if (a>b) { d1 = a; a = b; b = d1; } for (i=a;i<=b;i++) { j += i + " "; j1 += i; } console.log(j + 'Sum=' + j1);}

    il break in JavaScript 12.18 non lo accetta!
    come mai ? ci sono altre possibilità di uscire dal programma ?
    ho provato con process.keycode = 0; (al posto di break) ma non lo esegue...

  2. #2
    Utente di HTML.it L'avatar di Joe Taras
    Registrato dal
    Nov 2003
    residenza
    Taranto
    Messaggi
    955
    Quote Originariamente inviata da peter_pierre Visualizza il messaggio
    Ciao, sono nuovo.... spero di spiegarmi meglio che posso
    vorrei un aiuto su questo problema...riguardo allo stop all'interno di un 'loop' o con un if.
    questo è il quesito in inglese (molto semplice):
    Read an undetermined number of pairs values M and N (stop when any of these values is less or equal to zero). For each pair, print the sequence from the smallest to the biggest (including both) and the sum of consecutive integers between them (including both).
    io ho scritto in questo modo il risultato:
    var input = require('fs').readFileSync('/dev/stdin', 'utf8');var lines = input.split('\n');var rec = lines[0].split(' ');var a = parseInt(rec[0]);var b = parseInt(rec[1]);var d1 = 0;var j = '';var j1 = 0;var i = 0;if (a<=0||b<=0) { break; }mag(a,b);function mag(a,b) { if (a>b) { d1 = a; a = b; b = d1; } for (i=a;i<=b;i++) { j += i + " "; j1 += i; } console.log(j + 'Sum=' + j1);}

    il break in JavaScript 12.18 non lo accetta!
    come mai ? ci sono altre possibilità di uscire dal programma ?
    ho provato con process.keycode = 0; (al posto di break) ma non lo esegue...
    Ciao,
    ho provato a ordinare il tuo codice

    var input = require('fs').readFileSync('/dev/stdin', 'utf8');
    var lines = input.split('\n');
    var rec = lines[0].split(' ');
    var a = parseInt(rec[0]);
    var b = parseInt(rec[1]);
    var d1 = 0;
    var j = '';
    var j1 = 0;
    var i = 0;
    if (a<=0||b<=0) { break; }
    mag(a,b);
    function mag(a,b) {
    if (a>b) {
    d1 = a;
    a = b;
    b = d1;
    }
    for (i=a;i<=b;i++) {
    j += i + " ";
    j1 += i;
    }
    console.log(j + 'Sum=' + j1);
    }

    Il break si usa per uscire da cicli. Se vuoi interrompere prima l'esecuzione (quindi se a o b sono <= 0) metti una return

    Il break me lo aspetto all'interno di un ciclo for, while

  3. #3

    return sembra non funzionare!

    Quote Originariamente inviata da Joe Taras Visualizza il messaggio
    Ciao,
    ho provato a ordinare il tuo codice

    var input = require('fs').readFileSync('/dev/stdin', 'utf8');
    var lines = input.split('\n');
    var rec = lines[0].split(' ');
    var a = parseInt(rec[0]);
    var b = parseInt(rec[1]);
    var d1 = 0;
    var j = '';
    var j1 = 0;
    var i = 0;
    if (a<=0||b<=0) { break; }
    mag(a,b);
    function mag(a,b) {
    if (a>b) {
    d1 = a;
    a = b;
    b = d1;
    }
    for (i=a;i<=b;i++) {
    j += i + " ";
    j1 += i;
    }
    console.log(j + 'Sum=' + j1);
    }

    Il break si usa per uscire da cicli. Se vuoi interrompere prima l'esecuzione (quindi se a o b sono <= 0) metti una return

    Il break me lo aspetto all'interno di un ciclo for, while
    ciao,
    allora come mi hai detto ho immesso questo code:
    codice:
    var input = require('fs').readFileSync('/dev/stdin', 'utf8');
    var lines = input.split('\n');
    
    
    var rec = lines[0].split(' ');
    var a = parseInt(rec[0]);
    var b = parseInt(rec[1]);
    var d1 = 0;
    var j = '';
    var j1 = 0;
    var i = 0;
    
    
    if (a<=0||b<=0) {
       return;
    }
    else {
        return mag(a,b);
    }
    
    
    function mag(a,b) {
        if (a>b) {
            d1 = a;
            a = b;
            b = d1;
        }
        for (i=a;i<=b;i++) {
            j += i + " ";
            j1 += i;
        }
        return console.log(j + 'Sum=' + j1);
    }
    ma ugualmente non si ferma il programma... continua a decodificare altri 'rec' che ha nel file!!

  4. #4
    Utente di HTML.it L'avatar di Joe Taras
    Registrato dal
    Nov 2003
    residenza
    Taranto
    Messaggi
    955
    Quote Originariamente inviata da peter_pierre Visualizza il messaggio
    ciao,
    allora come mi hai detto ho immesso questo code:
    codice:
    var input = require('fs').readFileSync('/dev/stdin', 'utf8');
    var lines = input.split('\n');
    
    
    var rec = lines[0].split(' ');
    var a = parseInt(rec[0]);
    var b = parseInt(rec[1]);
    var d1 = 0;
    var j = '';
    var j1 = 0;
    var i = 0;
    
    
    if (a<=0||b<=0) {
       return;
    }
    else {
        return mag(a,b);
    }
    
    
    function mag(a,b) {
        if (a>b) {
            d1 = a;
            a = b;
            b = d1;
        }
        for (i=a;i<=b;i++) {
            j += i + " ";
            j1 += i;
        }
        return console.log(j + 'Sum=' + j1);
    }
    ma ugualmente non si ferma il programma... continua a decodificare altri 'rec' che ha nel file!!
    Partiamo dall'inizio, metti una riga di codice nella if (a<=0||b<=0) {

    per vedere se effettivamernte entra, oppure sta fallendo la condizione.

  5. #5
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    ciao Peter,
    benvenuto sul forum. Ti invito, qualora non lo avessi gà fatto, a prendere visione del regolamento ed in particolare la sezione che riguarda titoli e uso del tag code.

    Il codice che hai scritto è quantomeno approssimato .
    Invece di utilizzare quello che ha detto Joe metti un bel console log sia di a che di b prima dell'if.
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  6. #6

    problema preso da beecrowd

    Vorrei essere chiaro con voi e non so se è possibile parlare di questo problema in questo forum (ciro78 me lo dirà):
    il problema che vi ho presentato è uno dei tanti problemi che 'devi' risolvere nel sito ...
    ora vi metto il debugger di risposta che il sito stesso mi dato quando ho inviato il codice:
    codice:
    var input = require('fs').readFileSync('/dev/stdin', 'utf8');var lines = input.split('\n');
    
    
    var rec = lines[0].split(' ');
    var a = parseInt(rec[0]);
    var b = parseInt(rec[1]);
    var d1 = 0;
    var j = '';
    var j1 = 0;
    var i = 0;
    
    
    if (a<=0||b<=0) {
       return;
    }
    else {
        return mag(a,b);
    }
    
    
    function mag(a,b) {
        if (a>b) {
            d1 = a;
            a = b;
            b = d1;
        }
        for (i=a;i<=b;i++) {
            j += i + " ";
            j1 += i;
        }
        return console.log(j + 'Sum=' + j1);
    }
    risposta:

    Immagine 2022-07-09 082203-ridimenzionata2.png
    e con gli input ed output che mi ha dato:
    Immagine 2022-07-09 082328 ridimenzionata2.png
    Quindi con questi limiti (in risposta a Ciro78) non posso inserire console.log all'interno del programma.
    Invece avevo fatto delle prove con il mio editer (visual studio code) e sembrava che andasse bene il codice...
    Le simulazioni con il mio editer non comportavano un
    codice:
    var input = require('fs').readFileSync('/dev/stdin', 'utf8');
    non conosco bene il javascript, sto alle prime armi e autodidatta al 100% [non studio programmazione].
    questo è quanto.
    Ultima modifica di ciro78; 10-07-2022 a 16:38 Motivo: evitiamo pubblicità a siti esterni

  7. #7

    risolto il problema...

    Ho risolto!
    Ho rifatto una simulazione con il mio editor (VSC) ed ho ricreato il caricamento di un file /.data.txt inserendo gli stessi dati nello stesso ordine secondo l'input.

    cosa mancava al mio codice?

    codice:
    var input = require('fs').readFileSync('/dev/stdin', 'utf8');
    var lines = input.split('\n');
    var rec = lines[0].split(' ');
    var a = parseInt(rec[0]);
    var b = parseInt(rec[1]);
    var d1 = 0;
    var j = '';
    var j1 = 0;
    var i = 0;
    if (a<=0||b<=0) { break; }
    mag(a,b);
    function mag(a,b) {
    if (a>b) {
    d1 = a;
    a = b;
    b = d1;
    }
    for (i=a;i<=b;i++) {
    j += i + " ";
    j1 += i;
    }
    console.log(j + 'Sum=' + j1);
    }
    un loop di for per poter leggere 'linea per linea' tutto il file (già caricato o letto)!
    codice:
    var input = require('fs').readFileSync('/dev/stdin', 'utf8');
    var lines = input.split('\n');
    Questo code (vedi sopra) dice che il file lo trasformo in Array... (in singole coppie di numeri)
    poi:
    codice:
    var rec = lines[0].split(' ');
    questo (vedi sopra) è la prima linea (di due Interi) trasformata in Array ma non tutto il file
    ma questo non può andare bene!!!
    perchè devo trasformare in loop per leggere ogni linea in questo modo (vedi sotto):
    codice:
    for (x=0; lines.length-1>=x; x++) {
    var rec = lines[x].split(' ');
    var a = parseInt(rec[0]);
    var b = parseInt(rec[1]);
    var d1 = 0;
    var j = '';
    var j1 = 0;
    inserisco qui (sotto) la linea di if per verificare se la linea (a,b) è<=0, se è vero return;
    codice:
    if ((a<=0)||(b<=0)) {
        return;
    }
    if (a>b) {
            d1 = a;
            a = b;
            b = d1;
    }
    for (i=a;i<=b;i++) {
            j += i + " ";
            j1 += i;
    }
    console.log(j + 'Sum=' + j1);
    }
    It's work!!!

    that's all! thanks! see you soon!
    Ultima modifica di peter_pierre; 09-07-2022 a 11:48

Tag per questa discussione

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.