Java_program nie dodaje zero do liczb od 6 do 9 przy ||--, zamiast ||--aa, wyświetla ||--cc

0

Dzień dobry
Mam problem program nie wyświetla mi

        System.out.print("\n" + "0" + godz_0 + "|| --aa");
          

oraz do liczb od 6-9 dodaje 6|| --cc zamiast 6|| --aa oraz do od liczb 6 do 9 nie dodaje mi zero.

6|| --cc
7|| --cc
8|| --cc
9|| --cc
    public static void main(String[] args) 
    { 
    int[]  minuty1c = new int[] {1,61,121,241,301,361,366,421,481,551,675,685,699,705,721,781};
    int[]  minuty1 = new int[] {1,11,60,70,120,125,180,185,240,245,300,630,635,670,690,800,805};    
    int[]  minuty1d = new int[] {1,1181};
    String[]  string2a = new String[] {"","","","","","","",""};
    String[]  string2 = new String[] {"","","","","","","","","","","","","","","","",""};

    int godz_0 = minuty1[0] / 60;

    if (godz_0 > 0)
    for (int i1 = 0; i1 < godz_0; i1++)
   
        System.out.print("");
        System.out.print("0" + godz_0 + "||");
 
        for (int i2 = 0; i2 < minuty1.length; i2++)
        {
           // int godz_i = minuty1[i2] / 60;
            if (godz_0 != minuty1[i2] / 60)
            {
               if((minuty1[0] / 60 < 10) && (minuty1[i2] / 60 < 10) && (godz_0 != minuty1[i2] / 60)  )
                {
                while (++godz_0 < minuty1[i2] / 60)
                System.out.print("\n" + "0" + godz_0 + "|| --aa");
                System.out.print("\n" + "0" + godz_0 + "||bb");
                }
               else
                {
                while (++godz_0 < minuty1[i2] / 60)                  
                
                System.out.print("\n" + godz_0 + "|| --cc");
                System.out.print("\n" + godz_0 + "||dd");             
               } 
            }
                    
            if((minuty1[i2] % 60) < 10)
            {
            System.out.print(" ");
            System.out.print("0" + minuty1[i2] % 60 + string2[i2]);
            }
            else
            {
            System.out.print(" ");                
            System.out.print(minuty1[i2] % 60 + string2[i2]);
            }
        }
            System.out.print("\n");

            while (++godz_0 < 24)
   
            System.out.print("");
    }    
}

wynik :

run:
00|| 01 11
01||bb 00 10
02||bb 00 05
03||bb 00 05
04||bb 00 05
05||bb 00
6|| --cc
7|| --cc
8|| --cc
9|| --cc
10||dd 30 35
11||dd 10 30
12|| --cc
13||dd 20 25
BUILD SUCCESSFUL (total time: 0 seconds)

Proszę o pomoc rozwiązaniu problemu
dziękuje

1

Nie wiem co chesz zrobić tym kodem. Na pierwszy rzut oka jedyne co tu widzę, to próba wywołania raka (nie ma szans - na tym forum jesteśmy już uodpornieni) .

Na pewno nie pomaga Ci to że :
Na początku godz_0 równe jest 0 - więc for się nie wykona.

if (godz_0 > 0)
for (int i1 = 0; i1 < godz_0; i1++)

Ale jeszcze lepiej, że za tym forem nie ma klamry więc

        System.out.print("");
        System.out.print("0" + godz_0 + "||");

wykona się ale poza pętlą. (Same wcięcia nic nie dają).

Szczególnie ciekawa jest konstukcja z końcówki kodu:

while (++godz_0 < 24)
            System.out.print("");

Co to miało być ? Pętla opóźniająca? 24 razy drukujesz nic na ekran.

0

to dziwne. Na moim kompie dobrze działa. Takie miałem wyniki

run:
00|| 01 11
01||bb 00 10
02||bb 00 05
03||bb 00 05
04||bb 00 05
05||bb 00
06|| --aa
07|| --aa
08|| --aa
09|| --aa
10||dd 30 35
11||dd 10 30
12|| --cc
13||dd 20 25
BUILD SUCCESSFUL (total time: 0 seconds)

To może być jakaś sprawa systemu. Spróbuj włączyć i wyłączyć komputer

0

Widzisz, napisałeś kod, który rozumie komputer. Choć też nie do końca. Teraz powinieneś napisać go jeszcze raz, ale tak, żeby zrozumiał człowiek. Bo chyba nie ma tu na forum cyborgów. Wtedy szybko ci pomożemy.

0

Dziękuje za odpowiedz
Używam programu programu Netbeans 7.4 linux mate 17.04 64 bity

0

tam w if dla godz_0 = 5

 if((minuty1[0] / 60 < 10) && (minuty1[i2] / 60 < 10) && (godz_0 != minuty1[i2] / 60)  )
                {
                while (++godz_0 < minuty1[i2] / 60)
                System.out.print("\n" + "0" + godz_0 + "|| --aa");
                System.out.print("\n" + "0" + godz_0 + "||bb");
                }
               else
                {
                while (++godz_0 < minuty1[i2] / 60)                  

                System.out.print("\n" + godz_0 + "|| --cc");
                System.out.print("\n" + godz_0 + "||dd");             
               } 

masz fałsz bo (minuty1[i2]/60 < 10) daje fałsz gdyż lewa strona == 10, potem ci wykonuje w tym else, while i masz ++godz_0 i tak otrzymujesz że "6||--cc"

1 użytkowników online, w tym zalogowanych: 0, gości: 1