Проблема заключается в том, что несоответствующий вход остается невостребованным в Scanner
после исключения, поэтому вы навсегда поймаете то же исключение в цикле.
To устраните эту проблему, вашей программе необходимо удалить какой-либо вход из Scanner
, например, вызвав nextLine()
в блоке catch
:
try {
...
} catch (InputMismatchException e) {
// Use scan.next() to remove data from the Scanner,
// and print it as part of error message:
System.out.println(scan.next() + " can't be fitted anywhere.");
}
Массив input[]
можно заменить на single long input
, потому что вы никогда не используете данные из предыдущих итераций; следовательно, нет необходимости хранить его в массиве.
Кроме того, вы должны заменить вызов на nextInt
вызовом на nextLong
, иначе вы не будете обрабатывать большие числа правильно .
Вы также должны удалить условие для long
в целом
if((input[i] >=-9223372036854775808L) && (input[i] <=9223372036854775807L))
, так как гарантированно будет true
при условии, что чтение nextLong
выполнено успешно.
Наконец, использование «магических чисел» в вашей программе следует избегать в пользу заранее определенных констант из соответствующих встроенных классов Java, например
if((input[i] >= Integer.MIN_VALUE) && (input[i] <= Integer.MAX_VALUE))
вместо
if((input[i] >=-2147483648) && (input[i] <=2147483647))
Я думаю, что у вас есть эта проблема, потому что приложение установлено на вашем устройстве с другой подписью.
Когда вы запускаете Cordova для Android, приложение устанавливается с отладочной подписью, и, возможно, эта подпись изменилась, когда вы изменили целевой SDK или при обновлении Android.
Исправление, когда у вас возникает ошибка INSTALL_FAILED_UPDATE_INCOMPATIBLE, заключается в том, чтобы сначала удалить приложение, а затем у вас больше не должно возникать проблемы при запуске cordova run android
Не беспокойтесь об этом. Для NEXUS 5. зайдите в Настройки >> приложения >> поиск приложения.
Молодец ..