У меня с моими исследованиями, у меня проблема, когда я должен получить IP-адрес от пользователя, а затем повторить его с самого правого числа, и если это число будет равно или больше 256, то я должен повторить число -1 перед этим, а это значение равно 0.Для цикла с if inside not working
Я попытался решить его, просто сделав сначала примитивный код, который будет делать это один раз и только по пользовательскому вводу, и после этого я добавит больше сложности, например, оригинальную более чем одну итерацию, проверит ошибки и поместит код в файлы и классы propper .java. Я понимаю, что это было бы лучше с ArrayList, но я решил добавить ArrayList вместо простого массива позже.
Может ли кто-нибудь рассказать мне, почему цикл с условием put outofarraybound исключение, когда я не пытаюсь повторить «i»?
До сих пор я был в состоянии проанализировать, что я не имею должное знание Массивов и я думаю, что решение моей проблемы помогло бы мне закончить мою проблему и лучше понять их.
здесь полный код так далеко:
package com.ipadresa.classes;
import java.util.Scanner;
public class Hlavni {
public static void main(String[] args) {
int i = 0;
int[] zasobnikIPadresa = new int[4];
Scanner ctecka = new Scanner(System.in);
for (i = 0; i < zasobnikIPadresa.length; i++) {
zasobnikIPadresa[i] = ctecka.nextInt();
}
System.out.print("Original IP adress: ");
for (i = 0; i < zasobnikIPadresa.length; i++) {
if (i < zasobnikIPadresa.length - 1) {
System.out.print(zasobnikIPadresa[i] + ".");
} else {
System.out.print(zasobnikIPadresa[i]);
}
} System.out.println();
int pomoc = 0;
for (i = 3; i >= 0; i--) {
pomoc = zasobnikIPadresa[i];
if (pomoc > 255) {
zasobnikIPadresa[i] = 0;
zasobnikIPadresa[i-1] = pomoc + 1;
}
}
System.out.print("Final IP adress: ");
for (i = 0; i < zasobnikIPadresa.length; i++) {
if (i < zasobnikIPadresa.length - 1) {
System.out.print(zasobnikIPadresa[i] + ".");
} else {
System.out.print(zasobnikIPadresa[i]);
}
}
ctecka.close();
}
}
Да, это была проблема, спасибо за указание на это. – Jan