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
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 2791 Точки

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 2791 Точки

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

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