Loading...
hrishi avatar hrishi 0 Точки

Metric Converter - Java- задача 8

Хора, знае ли някой каква е грешката в този код? Джъдж дава 12/100.

 

package com.company;
import java.util.Scanner;
public class CMconverter {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("Enter size: ");
        double size = Double.parseDouble(scanner.nextLine());
        String sourceMetric = scanner.nextLine();
        String destMetric = scanner.nextLine();
        if (sourceMetric == "km") {
            size = size / 0.001;
        }else if (sourceMetric == "cm") {
            size = size / 100.0;
        }else if (sourceMetric == "mm") {
            size = size / 1000.0;
        }else if (sourceMetric == "ft") {
            size = size / 3.2808399;
        }else if (sourceMetric == "yd") {
            size = size / 1.0936133;
        }else if (sourceMetric == "in") {
            size = size / 39.3700787;
        }else if (sourceMetric == "mi") {
            size = size / 0.000621371192;
        }
      if (destMetric == "km") {
          size = size * 0.001;
      }else if (destMetric == "cm") {
          size = size * 100.0;
      }else if (destMetric == "mm") {
          size = size * 1000.0;
      }else if (destMetric == "ft") {
          size = size * 3.2808399;
      }else if (destMetric == "yd") {
          size = size * 1.0936133;
      }else if (destMetric == "in") {
          size = size * 39.3700787;
      }else if (destMetric == "mi") {
          size = size * 0.000621371192;
      }
        System.out.println(size + " " + destMetric);
    }
}

Тагове:
0
Java OOP Basics
icowwww avatar icowwww 2813 Точки

Срявнявай с .equals.  Иначе не работят проверките

 

https://pastebin.com/khHPXjDX

0
29/09/2017 19:41:14
hrishi avatar hrishi 0 Точки

В този код работи с "==". Някой знае защо?

 

package com.company;
import java.util.Scanner;
public class conver {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        double size = Double.parseDouble(scanner.nextLine());
        String enter = scanner.nextLine();
        String exit = scanner.nextLine();

         if (enter == "mm"){
            size = size / 1000;
        }if (enter == "cm"){
            size = size / 100;
        }if (enter == "mi"){
            size = size / 0.000621371192;
        }if (enter == "in"){
            size = size / 39.3700787;
        }if (enter == "km"){
            size = size / 0.001;
        }if (enter == "ft"){
            size = size / 3.2808399;
        }if (enter == "yd"){
            size = size / 1.0936133;

        }if (exit == "mm"){
            size = size * 1000;
        }if (exit == "cm"){
            size = size * 100;
        }if (exit == "mi"){
            size = size * 0.000621371192;
        }if (exit == "in"){
            size = size * 39.3700787;
        }if (exit == "km"){
            size = size * 0.001;
        }if (exit == "ft"){
            size = size * 3.2808399;
        }if (exit == "yd"){
            size = size * 1.0936133;
        }
        System.out.printf("%.8f",size,exit);
    }
}
0
icowwww avatar icowwww 2813 Точки

работи колкото и твоя :Д

0
RadostinStoychev avatar RadostinStoychev 128 Точки

Проверките в Java за String работят с "yourVariable".equals("desiredWord");
както е казал icowwww

String word = scanner.nextLine();

if(word.equals("България на 3 морета")) {
System.out.println("Welcome");
}

В C# string-овете се проверяват с "=="

0
30/09/2017 00:44:50
hrishi avatar hrishi 0 Точки

Благодаря за отговора.

0
AntonPortenov avatar AntonPortenov 102 Точки

Оператора == не работи със стрингове защото стринга е обект а не примитивен тип и поради това == сочи към референцията му а не към стойността му.

String a = "1";

String b = a;

String b == a  ще върне true защото сочат към едно и също място и имат еднаква референция

String b = "1";

String b == a ще върне falae, защото b е нов обект, който има друга референция

 

За да сравниш стойностите използваш equals.

0
icowwww avatar icowwww 2813 Точки

String a = "1";

String b =a;

b = "1";

b == a // true

0
30/09/2017 12:16:12
AntonPortenov avatar AntonPortenov 102 Точки

Моя грешка

я пробвай с 

b = new String("1"); 

Вместо 

b = "1";

:)

0
30/09/2017 14:15:51
icowwww avatar icowwww 2813 Точки

https://i.stack.imgur.com/71l1O.jpg

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.