2015-08-05 8 views
-7

Как изменить этот код, чтобы сделать переменную operation2, работающую во второй функции switch. Когда я делаю parseDouble, он получает ошибку bla bla parsedouble.
Это не работает, даже если я пытаюсь создать глобальный operation2.Калькулятор единиц измерения Java

package matura; 

import java.util.Scanner; 

public class MeasureUnits { 

public static void main(String args[]) 

{ 
    String operation; 
    String operation2; 

    Scanner value = new Scanner(System.in); 
    System.out.println(" Write value: :"); 

    double wartość; 
    wartość = value.nextDouble(); 

    double yard, inch, foot, mile; 
    double metr, decymetr, centymetr, kilometr; 

    centymetr = 1; 

    metr = 100 * centymetr; 
    centymetr = 1; 
    kilometr = centymetr * 100000; 
    decymetr = 10 * centymetr; 

    yard = 0.9144 * metr; 
    inch = 2.54 * centymetr; 
    mile = 1.609344 * kilometr; 
    foot = 30.48 * centymetr; 

    Scanner input1 = new Scanner(System.in); 
    System.out.println(" Choose one of measure units" + " 'yard' 'inch' 'feet' 'mile' :"); 
    operation2 = input1.next(); 

    switch (operation2) { 
    case "yard": 
     System.out.println("You've choosed 'yard' "); 
     break; 
    case "inch": 
     System.out.println(" You've choosed 'inch'"); 
     break; 

    case "mile": 
     System.out.println(" You've choosed 'mile'"); 
     break; 

    case "foot": 
     System.out.println("You've choosed 'foot'"); 
     break; 

    } 

    { 

     Scanner input2 = new Scanner(System.in); 
     System.out.println(" Choose one of polish measure units" + " 'metr' 'centymetr' 'decymetr' 'kilometr' :"); 
     operation = input2.next(); 

     switch (operation) { 
     case "metr": 
      System.out.println(operation2 * wartość/100); 
      break; 

     case "centymetr": 
      System.out.println(operation2 * wartość/100); 
      break; 

     case "kilometr": 
      System.out.println(operation2 * wartość/100000); 
      break; 

     case "decymetr": 
      System.out.println(operation2 * wartość/10); 
      break; 

     } 

    } 
} 
+7

'bla bla parsedouble' называется сообщением об ошибке. Некоторый талантливый программист долгое время работал над компилятором, чтобы он дал вам * значимые * и * полезные * сообщения об ошибках. Пожалуйста, узнайте, что они необходимы для отладки. Так что «бла-бла» никому не помогает. Кроме того, 'switch' не является функцией, и вы не можете« переключать »на двойной. См. Тот же самый вопрос: http://stackoverflow.com/questions/5141830/switch-expression-cant-be-float-double-or-boolean – Kon

+0

В дополнение ко всему вышесказанному, мне трудно поверить фактический код отформатирован так. Можете ли вы его аккуратно, поэтому мои глаза не болят? – dcsohl

+0

'bla bla parsedouble' Просто еще одно * досадное сообщение об ошибке, сообщающее вам, что именно не так и где это происходит. Подсказка: вы должны прочитать его, и если вы не понимаете, что это такое и почему это происходит, выполните беглый поиск Google и приложите усилия, чтобы исправить это. Если вы все еще застряли, тогда вы будете в хорошем месте, чтобы спросить здесь. – tnw

ответ

0

ли вы взглянуть на JSR 363 и Java единиц проекта измерения: http://unitsofmeasurement.github.io/

Эталон другие системы единиц реализации и (SI, США и т.д.) содержат все необходимые определения единицы в Java и если вам нужно больше, вы можете определить свой собственный поверх API.

Смежные вопросы