2011-10-12 1 views
-1

les directions sont les suivantes: entrez un nombre entier, puis double valeur entière, puis appelez votre méthode inverse de vide statique (long i). La méthode void reverse (long i) affiche l'entier à l'envers terminé par une nouvelle ligne.Inverser le nombre après avoir entré un nombre entier et le doubler

J'ai besoin d'aide pour inverser l'entier. Je pense que j'ai le reste du code correctement. Mais, corrigez-moi si je me trompe.

import java.util.Scanner; 

public class Exercise5_3M { 
    public static void reverse(String[] args) { 
    Scanner input = new Scanner(System.in); 

    //input an integer 
    int num= input.nextInt(); 
    int result=0; 

    //Double the intger 
    while(num>0){ 
    result= num *2; 

     } 


System.out.print(result); 
    } 
} 

Répondre

0

au début de tout ce que vous avez besoin void reverse(long i) place void reverse(String[] args) au deuxième

while(num>0){ 
    result= num *2; 
} 

ne finissent jamais, parce num ne changera jamais

+0

Et si vous pensez qu'il n'y a aucune raison d'avoir un moment. Ce serait juste pour doubler. –

+0

mhm, c'est bizarre. Je l'avais essayé avant - entrée inverse (long i), et cela m'a donné une erreur de compilation. Peut-être que j'ai changé quelque chose et que je ne m'en suis pas rendu compte. Merci! Je vais essayer de comprendre la deuxième partie maintenant. Ne dis-je pas dans mon code, que le nombre est supérieur à zéro et le résultat sera égal au nombre multiplié par deux. Comment ça ne finit jamais? – user972077

+0

@ user972077 Le corps de la boucle 'while' s'exécute jusqu'à ce que la condition ne soit plus vraie (ou, pour le dire autrement, il s'exécute alors que la condition est vraie - donc une boucle' while'). Si la valeur de num ne change jamais, cette condition sera toujours vraie pour toute entrée supérieure à 0, de sorte que le corps sera simplement exécuté encore et encore. C'est ce qu'on appelle une boucle infinie. –

0

Votre méthode doit être appelée « principale » lorsque vous voulez exécuter au début. Ensuite, vous avez créé une boucle infini avec votre temps lorsque sb entre un nombre positif. Un négatif renvoie toujours 0. Troisièmement, vous n'avez pas de méthode appelée reverse (long i). Quatrième contrôle des limites. Est-ce que seuls les nombres positifs sont autorisés ou négatifs?

Pour un conseil: Vous pouvez l'inverser de plusieurs façons. Convertissez votre nombre en une chaîne ou un tableau char et inversez-le. Ou vous voulez jeter un oeil à l'opérateur de mod "%".

+0

Je comprends les concepts, mais quand j'essaie de l'écrire, je reçois constamment une erreur de compilation. Je comprends java- conceptuellement- mais, c'est vraiment difficile de le mettre en code! – user972077

Questions connexes