Zamiana pętli for na while dziwny problem

0

Cześć mam takie małe zadanko a mianowicie mam zamienić pętle for na while, niby banalne ale coś nie działa na dole wyjaśniłem o co mi dokładnie chodzi, bardzo proszę was o pomoc ;)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Zadanie_13._2
{
    class Program
    {
        static void Main(string[] args)
        {
            int[][] tab = new int[4][];
            int a = 0;
            while(a<4)
            {
                tab[a] = new int[4 - a];
                a++;
            }
            
   // Działa dobrze tablica zapisuje się jak powinna, chciałbym uzyskać ten sam efekt zapisując to  w while               
     `    `   int counter=1;
            //for (int i = 0; i < tab.Length; i++)                    
              //  for (int j = 0; j < tab[i].Length; j++)              
                //    tab[i][j] = counter++;                              `
  

         int b = 0, c = 0;                                                       
            while(b<tab.Length)                                               
            {                                                                             
                                                                                          
                while (c < tab[b].Length)                                   
                {                                                                        
                    tab[b][c] = counter++;                                              
                              c++;                                                               
                }                                                                         
                                                                                          
                b++;                                                                  
            }       
     //Po wyswietleniu zawartosci, wyniki się różnią a mianowicie przy czwartym naliczeniu pierwszej pętli wpisywane są  
 // wartości zerowe, próbowałem rozwiązać jakoś ten problem ale głowie się już kupe czasu i nie widzę tutaj innej 
 // możliwosci. Bardzo proszę o pomoc i z góry dziękuje ;) 
                                                               `     
                     
            for(int i=0; i<tab.Length; i++)
            {
                Console.Write("tab[{0}]=", i);
                for(int j=0; j<tab[i].Length; j++)
                {
                    Console.Write("{0}", tab[i][j]);
                }
                Console.WriteLine("");
            }
            
            Console.ReadKey();
        }
    }
}


1

Weź cały kod wrzuć pomiędzy te znaczniki

```csharp

tutaj kod

```

2

Nie zerujesz zmiennej c po pierwszym obiegu zewnętrznej pętli.

0

Dziękuje za pomoc :)

2

btw @Nokdem zamiast gapić się bez sensu lepiej odpalić debuger i prześledzić co się dzieje krok po kroku. Jeśli nie wiesz co to debuger to pogooglaj sobie za jakimś wprowadzeniem do debugowania w VS (lub innym IDE z którego korzystasz), np. .

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