6

Following this c# course on the web.
The dude says to always use the for exampoe instead of the while.
To produce fewer lines of code, and to ensure not to use the variable "i" wrongly later on.

Thoughts on this from you C# masters?

Comments
  • 1
    I mean... Couldnt i just put the
    Int i = 0;

    And

    I++;

    Inside the while, as done in the for.
    And that would be same length of code with no variable issues in future code like the for ?

    He just said to always use for instead of while, kinda sceptical about that
  • 1
    @irene got ya, thanks 📚🤓
  • 11
    If you have a defined number of iterations (the condition fits in one or two statements), it' s better to use a for, it's jut more readable.

    Use while if the number of iterations is unknown and defined by the control flow inside the loop.
  • 1
    I only use "while" when I do not have to create a variable, because as @ddephor mentioned, it's more readable.
  • 1
    @ddephor I wish people understood this very simple distinction between the two.
  • 1
    to put it simple...

    while expects a boolean expression - and while iterates as long as the expression is true (break / continue etc omitted)

    for is made (in most languages) of 3 components, where in some languages components can be omitted.

    - Initialize
    - Test (boolean expression)
    - Continuation

    Stating the obvious here, I know.

    Point is that I think it's good to use the appropriate loop based on what you want to achieve, like everybody said.

    If u feel unsure while coding look at the design and intention of what u want to use.

    In this case, I think that for does the job as it was clearly intended to do what you've written in your example.
  • 7
    Totally off topic, but...
    That font tho
  • 7
    Is.. is that Times New Roman?
  • 3
    Great answers by @irene and @IntrusionCM

    Can't add anything afte that but I can offer some cool tips for for loops in C#:

    Infinite for loop:
    for ( ; ;) { //code here}

    Execute some code inside the for loop initializer statement:

    int i;
    int j = 10;
    for (i = 0, Console.WriteLine($"Start: i={i}, j={j}"); i < j; i++, j--, Console.WriteLine($"Step: i={i}, j={j}")) { //Code here }

    Enjoy 🤘
  • 4
    I am gonna take a "while"
    If you know everthing its "for" you.
  • 2
    @zotigapo haha thats a creative way to put it, understandable :D
    You are all dope people helping out a C# rookie
  • 1
    int i = -1;
    while(++i < 100) {
    Console.WriteLine($"i = {i}");
    }

    In C#, a while loop expressed as above is generally faster than a for loop. Also, you can use string interpolation like above. If you don't use interpolation, no need for i.ToString(), because when you concatenate a string with a non-string the ToString() is implicit.
  • 1
    Reusing i is not a very strong argument. In general, an accepted convention is to use i, j,m, etc. as loop increment/decrement variables, scoped to that loop. However, that principle of scope is not applicable to every widely used language. If you reuse it in a different loop 'by mistake' you're not paying attention. There are cases in which you might define i named as index, which expresses your intention to used index's value after the loop.

    Use the loop construct that suits your case best! I hope that dude also pointed out that in general, reverse for loops (i--, i >= 0) perform better.
  • 1
    @irene that god damn S9 keyboard... I always tap the wrong fucking keys haha
  • 2
    For is While++
  • 1
    Actually I prefer “for loop” for easier reading
  • 2
    What is that font?
    It's gorgeous.
  • 0
    @PrivateGER
    Time New Roman?
  • 0
    maybe take a look at Cambria.

    It's Barock Antiqua, but the spacing is wider which improves readibility imho.
  • 0
    Oh.

    And Wikipedia is immensely helpful:

    https://de.wikipedia.org/wiki/...
  • 0
    @Irene I use Fira Mono Code. :)

    But I know a bit about fonts due to the use of TCPDF / PDF design.
Add Comment