Добрый день.
Столкнулся с непонятной ситуацией, помогите пожалуйста разобраться.
Написал код программы про треугольник в соответсвии с условием задачи.
Запускаю компилятор, компиляция проходит успешно, выдается правильное решение в соответсвии с условием задачи. Пробовал изменять входные данные и все работает, в случае невыполнения условия, выдает корректный ответ, что такого треугольника не существует.
Но как только запускаю проверку, на последнем условии пишет ошибку, что не выводит на экран "такой треугольник не существует". Я не понимаю почему. При компиляции все работает корректно, при проверке нет. Сравнил мой код с правильным решением и разница только в том, что я загнал переменные в boolean.
Мой код.
Правильный код система выдает следующий:
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int sideA = scanner.nextInt();
int sideB = scanner.nextInt();
int sideC = scanner.nextInt();
if ((sideA < sideB + sideC) && (sideB < sideC + sideA) && (sideC < sideA + sideB)) {
System.out.println(TRIANGLE_EXISTS);
} else {
System.out.println(TRIANGLE_NOT_EXISTS);
}
}
На мой взгляд, разницы никакой.
Подскажите пожалуйста, почему он обрывается на последнем требовании? Спасибо!
package com.javarush.task.pro.task03.task0306;
import java.util.Scanner;
/*
Треугольник
*/
public class Solution {
private static final String TRIANGLE_EXISTS = "треугольник существует";
private static final String TRIANGLE_NOT_EXISTS = "треугольник не существует";
public static void main(String[] args) {
//напишите тут ваш код
Scanner input = new Scanner (System.in);
int sideA = input.nextInt();
int sideB = input.nextInt();
int sideC = input.nextInt();
boolean A = (sideA <= (sideB+sideC));
boolean B = (sideB <= (sideA+sideC));
boolean C = (sideC <= (sideA+sideB));
if (A && B && C) {
System.out.println(TRIANGLE_EXISTS);
} else {
System.out.println(TRIANGLE_NOT_EXISTS);
}
}
}