2015-09-16 2 views
-5

Je fais ma première mission Java et je suis aux prises avec une erreur ici.Erreur d'opérande dans la conversion de température en Java?

* To change this license header, choose License Headers in Project Properties. 
* To change this template file, choose Tools | Templates 
* and open the template in the editor. 
*/ 
package ctof; 

/** 
* 
* @author Braydon 
*/ 
    import java.util.Scanner; 
public class CtoF { 

    /** 
    * @param args the command line arguments 
    */ 
    public static void main(String[] args) { 
     System.out.println("Enter temperature in Celsius:"); 
     Scanner temp = new Scanner(System.in); 
     String T = scan.nextLine(); 
      T = (T - 32) * 5/9; 
      System.out.println("Temperature in Fahrenheit =" + T); 
      } 
} 

L'erreur que cela me cause est la suivante.

run: 
Enter temperature in Celsius: 
Exception in thread "main" java.lang.UnsupportedOperationException: Not supported yet. 
    at ctof.scan.nextLine(scan.java:19) 
    at ctof.CtoF.main(CtoF.java:21) 
Java Result: 1 
BUILD SUCCESSFUL (total time: 0 seconds) 

L'erreur est dans la ligne où je joue les maths, mais j'ai tout essayé et je ne peux pas sembler corriger. S'il vous plaît aider!

+5

Vous semblez utiliser 'ctof.scan' en quelque sorte ... fondamentalement, il y a plus code que vous nous montrez réellement. –

+2

Avant même de continuer, recherchez la division entière. –

+4

Vous ne pouvez pas soustraire des chaînes - vous voulez un type numérique pour cela. –

Répondre

1

Vous appelez la mauvaise fonction. Vous devez appeler temp.nextLine() au lieu de scan.nextLine() pour lire la ligne suivante (l'analyse n'est même pas définie dans le code que vous avez publié)

CEPENDANT: Vous ne devriez pas utiliser nextLine() lorsque vous avez besoin de lire un nombre. Par conséquent, appelez temp.nextInt() ou temp.nextDouble() à la place.

0

Je crois que vous êtes débutant à Java. Tout d'abord, vous devrez en apprendre davantage sur les types de données. Eh bien, vous pouvez google bases sur la programmation et apprendre de lui.

La solution à votre problème:

public class CtoF { 

    public static void main(String[] args) { 
     System.out.println("Enter temperature in Celsius:"); 
     Scanner temp = new Scanner(System.in); 
     int T = temp.nextInt(); 
     T = (T - 32) * 5/9; 
     System.out.println("Temperature in Fahrenheit =" + T); 
    } 
} 

Essayez d'utiliser de bons noms pour les variables (juste une suggestion)

+0

Merci pour toutes les personnes d'aide. J'ai le code fonctionnel maintenant, mais mes calculs sont erronés, je dois donc revenir en arrière et comprendre ce que je fais de mal avec l'ordre des opérations ou quelque chose comme ça. –

+0

Si vous pensez que c'est la bonne réponse, notez-la comme étant celle-ci ... cela nous motive vraiment à répondre aux questions! Et heureux d'apprendre que c'est résolu, amusez-vous à coder! –

+0

Je l'ai marqué, mais il n'apparaîtra pas jusqu'à ce que j'obtienne 15 votes positifs. On dirait que mon enquête a été notée -5, cela me prendra un moment. –