Введение
Метод compareUnsigned() класса Integer используется для сравнения беззнаковых значений двух целых чисел, чтобы определить, какое из них больше другого. Метод возвращает 0, если беззнаковые значения обоих целых чисел равны. Возвращает 1, если беззнаковое значение первого целого числа больше второго. Возвращает -1, если беззнаковое значение первого целого числа меньше второго.
Создайте файл класса Java
В терминале создайте новую директорию для вашего Java-проекта. Например:
mkdir project
Перейдите в директорию проекта:
cd project
Создайте новый Java-класс с именем IntegerCompareUnsigned.java:
touch IntegerCompareUnsigned.java
Реализуйте код
Скопируйте и вставьте следующий код в файл IntegerCompareUnsigned.java:
import java.lang.Integer;
import java.util.Scanner;
public class IntegerCompareUnsigned {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Enter first and second number: ");
// Taking input from user
try {
int n1 = sc.nextInt();
int n2 = sc.nextInt();
// Calling compareUnsigned() method
int r = Integer.compareUnsigned(n1, n2);
// Examining the result
if(r > 0) {
System.out.println("First number is greater");
}
else if(r < 0) {
System.out.println("Second number is greater");
}
else {
System.out.println("Both numbers are equal");
}
}
catch(Exception e) {
System.out.println("Invalid input!");
}
}
}
Сохраните файл и выйдите из него.
Эта программа запрашивает у пользователя два целых числа и использует метод compareUnsigned() для сравнения их беззнаковых значений. Затем выводится информация о том, является ли первое число больше второго, второе число больше первого или числа равны.
Компилируйте и запустите программу
Скомпилируйте программу с использованием следующей команды:
javac IntegerCompareUnsigned.java
Запустите программу с использованием следующей команды:
java IntegerCompareUnsigned
Вы должны увидеть следующий запрос:
Enter first and second number:
Введите два числа - одно больше 2147483647, а другое меньше или равно 2147483647. Это связано с тем, что в Java тип int может хранить только знаковые 32-разрядные значения - от -2147483648 до 2147483647. Если вы введете число больше 2147483647, будет выведено сообщение об ошибке.
Программа будет запускаться, и вы должны увидеть следующий вывод:
First number is greater
Тестируйте программу с разными значениями
Вы можете протестировать программу с разными значениями и увидеть вывод.
Попробуйте запустить программу с следующими входными данными:
Enter first and second number: -10 20
Enter first and second number: 500000000 -200000000
Enter first and second number: 0 0
Измените программу
Измените программу так, чтобы она принимала два целых числа в качестве аргументов командной строки, а не читала их от пользователя во время выполнения.
Скопируйте и вставьте следующий код в файл IntegerCompareUnsigned.java:
import java.lang.Integer;
public class IntegerCompareUnsigned {
public static void main(String[] args) {
// Checking if the correct number of arguments are provided
if(args.length!= 2) {
System.out.println("Please provide two integer arguments!");
return;
}
// Parsing the arguments as integers
int n1 = Integer.parseInt(args[0]);
int n2 = Integer.parseInt(args[1]);
// Calling compareUnsigned() method
int r = Integer.compareUnsigned(n1, n2);
// Examining the result
if(r > 0) {
System.out.println(n1 + " is greater than " + n2);
}
else if(r < 0) {
System.out.println(n2 + " is greater than " + n1);
}
else {
System.out.println(n1 + " and " + n2 + " are equal");
}
}
}
Сохраните файл и выйдите из него.
Компилируйте и запустите измененную программу
Скомпилируйте модифицированную программу с использованием следующей команды:
javac IntegerCompareUnsigned.java
Запустите модифицированную программу с использованием следующей команды:
java IntegerCompareUnsigned 3000000000 200000000
Вы должны увидеть следующий вывод:
3000000000 is greater than 200000000
Измените программу, чтобы протестировать ее с разными входными данными.
Резюме
В этом практическом занятии вы узнали, как использовать метод compareUnsigned() класса Integer для сравнения беззнаковых значений двух целых чисел, чтобы определить, какое из них больше другого. Также вы узнали, как изменить программу, чтобы она принимала два целых числа в качестве аргументов командной строки, а не читала их от пользователя во время выполнения.



