2014-04-20 5 views
1

J'essaie de soumettre le deuxième code sur spoj mais il donne une mauvaise réponse mais le premier est accepté même si je pense que la logique des deux codes est la même.quelle est la différence entre deux codes

public class Main { 
    public static void main(String[] args) throws java.lang.Exception { 
     java.io.BufferedReader r = new java.io.BufferedReader(
       new java.io.InputStreamReader(System.in)); 
     String s; 
     while (!(s = r.readLine()).startsWith("42")) 
      System.out.println(s); 
    } 
} 

et

import java.io.BufferedReader; 
import java.io.IOException; 
import java.io.InputStreamReader; 

public class Main { 
    public static void main(String[] args) throws IOException { 
     BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 
     int n = Integer.parseInt(br.readLine()); 
     if (n != 42) { 
      System.out.println(n); 
     } 
    } 
} 
+1

essayez d'exécuter les deux extraits en utilisant '42xyz' comme chaîne d'entrée –

+0

La différence entre les deux codes est que le deuxième code tente de convertir la chaîne en un nombre qui peut provoquer une exception de format numérique si la chaîne n'est pas numérique – user3260861

Répondre

0

Il n'y a pas de boucle dans votre second code. Essayez votre code en utilisant les données d'entrée suivantes:

1 
2 
88 
42 
99 

Votre deuxième code va traiter uniquement la première ligne sur l'entrée (à savoir 1). Voici l'exemple de travail de votre code: http://ideone.com/Qr1q3N

Vous pouvez, par exemple, introduire une boucle de la manière suivante:

import java.io.BufferedReader; 
import java.io.IOException; 
import java.io.InputStreamReader; 

public class Main { 
    public static void main(String[] args) throws IOException { 
     BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 
     int n; 
     while ((n = Integer.parseInt(br.readLine())) != 42) { 
      System.out.println(n); 
     } 
    } 
} 

Ici vous pouvez voir ce code en action: http://ideone.com/z8H4fP

Questions connexes