Это проблема просит чтобы рассчитать площадь параллелограмм с шириной 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”