Heads up, это небольшая небольшая часть школьного проекта, и поэтому я попытался не просить вас, ребята, просто написать код для меня.JAVA не входит в цикл
как основа: Я пытаюсь заполнить этот массив char[][]
спирально, я думаю, что у меня есть алгоритм, который будет работать, как это часто бывает ... его не работает.
Но сейчас у меня возникают проблемы с вводом и выполнением кода в этом цикле. здесь небольшой фрагмент ...
В этом конкретном примере я бег k
является char[]
массивом, который является длиной 10 и pT
является char[]
массивом длиной 92
box2 = new char[height][k.length];
int c = 0;
int limit = pT.length; //ensures the while loop doesint attempt to populate past the array bounds
int w = k.length; //width of array
int h = height; //height of array
//these two variable i am trying to use to count how many blocks are
//filled on the outside of the spiral.
//example.. as the spiral populates inward, it can no longer travel the entire
//length of the array, but one less block for every pass
int difH = 0; //difference in height
int difW = 0; //difference in width
while (limit > 0) {
for (int n = 0; n < (w - (w - difW)); n++) {
box[h - (h - difH)][n] = pT[c];
limit--;
}
}
по какой-либо причине, когда Я прохожу через код в netbeans, он не вводит или не выполняет это для цикла или любого из трех других.
Может ли кто-нибудь помочь мне выяснить, почему мой код не вводит или не исполняет этот цикл?
В случае, если вы хотите, чтобы увидеть все время цикла:
while (limit > 0) {
for (int n = 0; n < (w - (w - difW)); n++) {
box[h - (h - difH)][n] = pT[c];
limit--;
}
difH--;
for (int n = h - (h - difH); n > 0; n--) {
box[n][w - (w - difW)] = pT[c];
limit--;
}
difW--;
for (int n = w - (w - difW); n > 0; n--) {
box[h - (h - difH)][n] = pT[c];
limit--;
}
difH--;
for (int n = 0; n < h - (h - difH); n++) {
box[n][w - (w - difW)] = pT[c];
limit--;
}
difW--;
}
//Prints box2
//prints the box array
int counter2 = 0;
for (int column = 0; column < box2.length; column++) {
if (column > 0) {
System.out.print("|");
}
System.out.println();
for (int r = 0; r < box2[column].length; r++) {
System.out.print("|" + box2[column][r]);
}
}
System.out.println("|\n");
Если я облажался за все понятности (как это вполне возможно), пожалуйста, дайте мне знать, и я буду редактировать или, возможно, пересмотреть мое алгоритм.
Для дальнейшего использования, хороший способ отладки таких проблем - это просто напечатать некоторую выходную печать «System.out.println (n)» и т. Д. В случае Java, чтобы вы знали, что происходит, и можете построить логика, как программа работает в вашей голове, и увидит, где-то неправильный номер. – Smar