Это проблема просит чтобы рассчитать площадь параллелограмм с шириной B и высотой H. Случае B и H, консоли должен возвращать сообщение “java.lang. Ожидание: Ширина и высота должны быть положительными”.
Статический
Кроме того, важно, что используется блок Static
инициализации. Преимущество private static methods
повторного использования при необходимости повторной инициализации переменной класса.
Синтаксис инициализации static:
public class staticTest { static String s; static int n; static double b; static { s = "Eu sou estático"; n = 500; d = 4000.0001; } }
Код, предлагаемые на проблему заключается в следующем:
import java.io.*; import java.util.*; import java.text.*; import java.math.*; import java.util.regex.*; public class Solution { //... espaço para escrever o código public static void main(String[] args){ if(flag){ int area=B*H; System.out.print(area); } }//end of main }//end of class
Попробуй/Поймай
Чтобы решить проблему, важно использовать как блок static
сколько попробуй/поймай
. Каждый раз, когда у нас есть CheckedException
, мы можем использовать try/catch
переадресация ошибки, сохраняя при этом работоспособность команды.
Синтаксис Try/Catch-это:
try { } catch (Exception ex) { }
Às vezes precisamos usar um создать новое исключение("mensagem")
, чтобы указать, какие исключения хотим передать и упростить исправление ошибок в будущем.
Таким образом, разрешение проблемы, если дает следующие шаги:
- Внутри класса Solution, передать переменные, которые являются
static
. - Создать
Сканер
для того чтобы input чисел. - Проверить, через
boolean
, flag, который уже был указан на главной проблемы. - Передать переменные B и H для расчета в параллелограмм.
- Открыть блокнот
static{}
- Ввести блок
try/catch
), указав, что если(if)
a flagfalse
, то необходимо обратиться кthrow new Exception ();
и печать исключением того, что было запрошено.
Таким образом, окончательное решение, внутри класса Solution, находится:
static Scanner sc = new Scanner(System.in); static boolean flag = true; static int B = sc.nextInt(); static int H = sc.nextInt(); static { try{ if(B <= 0 || H <= 0){ flag = false; throw new Exception("Breadth and height must be positive"); } } catch (java.lang.Exception ex){ System.out.println(ex); }
==========
Характеристика
Static
Официальной документации:
Пример синтаксиса:
Попробуй/Поймай
Исключения и синтаксис
============
Эта публикация является частью серии упражнений разрешены в Java на HackerRank. Перейдите полная серия:
- Хакерский рейтинг #6 | Сканер e Конец файла
- HackerRank #7 | Int в строку/Строка в Int
- Хакерский рейтинг #8 | Дата и время
- HackerRank #9 | Блок статического инициализатора
- Хакерский рейтинг #10 | Форматировщик валют
- Хакерский рейтинг #11 | Типы данных
- Хакерранк #12 | Введение в строки
- Хакерский рейтинг #13 | Сравнение подстрок
- Хакерранк #14 | Абстрактный класс
- Хакерский рейтинг #18 | Большой целитель
- Хакерранк #19 | Петли II
- Хакерранк #20 | Реверс строки
- Хакерский рейтинг #23 | Ключевое слово Instanceof
- Хакерский рейтинг #26 | Дженерики
- Хакерский рейтинг #27 | 1D Массив
- Хакерский рейтинг #28 | Анаграммы
- Хакерский рейтинг #33 | Список массивов
- HackerRank #34 | Попытка обработки исключений/Перехват
- HackerRank #36 | Обработка исключений
- Хакерский рейтинг #37 | Список
- Хакерский рейтинг #38 | Подмассив
- Хакерский рейтинг #39 | Набор хэшей
Оригинал: “https://dev.to/beatrizmaciel/hackerrank-9-static-initializer-block-48ha”