Tilted Forum Project Discussion Community  

Go Back   Tilted Forum Project Discussion Community > Interests > Tilted Technology


 
 
LinkBack Thread Tools
Old 11-14-2004, 02:17 PM   #1 (permalink)
Junkie
 
Location: Montreal
Total beginner Java questions...

I've just started learning Java this week. Feel free to laugh, I can take it.

So, I'm doing this 9x multiplication table, as an exercise:

class table9x9
{
public static void main(String args[])
{
for(int x = 1; x <= 9; x ++)
{ System.out.print(x + "\t");
for(int y = 2; y <= 9; y ++)
{
System.out.print(x * y + "\t");
}
System.out.println();
}
}
}


Questions... 1) Is this the most elegant way to achieve the results? E.g. I'm not sure about initializing y as 2 (although it does the job)...

2) Is it better to initialize x & y outside of the for loops? Or is that irrelevant?

3) When I run this, the single digit "answers", top-left of the table, do not align evenly. I cannot for the life of me understand why not!

4) My dos shell "copy" button: how do I enable that? Y'know, so I can show the result.

Any help would be appreciated. I've gotta lot of learning to do. Thanks!
crackpot is offline  
Old 11-14-2004, 05:37 PM   #2 (permalink)
Insane
 
Location: Wales, UK, Europe, Earth, Milky Way, Universe
Your solution looks pretty good. I'll help you along with a few pointers. Please note i may not include some criticisms regarding object oriented design etc. because its probably not important to you right now.

Firstly, here's how i would've done it (its rather like yours)
Code:
public class Table9x9 { // Good practice: begin class names with a capital letter

    public static void main(String args[]) {

        for(int x = 1; x <= 9; x++) {
            System.out.print(x + "\t");

            for(int y = 2; y <= 9; y++) {
                System.out.print(x * y + "\t");
            }

            System.out.println();
        }
    }
}
You've probably noticed that i use different "{" placement to you. This is a matter of personal preference.

To answer your questions:

1. Almost elegant enough for me. Check your indentations for logical structure. Whether you initialise x with 1 or 2 is entirely up to you and your project spec.

2. For loops were designed to allow you to initialise variables in the opening statement. This is generally the best way to use a for loop (as you have in your code)

3. This works fine for me, although the single digits do align above the "10's" colum of the next line, but thats irrelevant in this case i think. Maybe it's the font that your command line uses or the width of your window.

4. In my command window, you can right-click and select "mark" which lets you then hilight the text you want to copy. After you hilight, right-click again and it should copy to the clipboard so you can paste into your text editor.

If you're just starting out in java, make sure you get into the habit of commenting your code. Even if it's a small program like this, its best to do it anyway just to get the habit. My code lacked commenting for brevity. Again, i also didnt want to confuse things by mentioning strict object oriented methods. These things you'll learn as you get on

Cue the other programmers with their own personal preferences...
__________________
There are only two industries that refer to their customers as "users". - Edward Tufte
welshbyte is offline  
Old 11-15-2004, 01:38 PM   #3 (permalink)
Crazy
 
Initializing the variables in the for statement gives the variables a bit different scope. If you define the variable in the for statement, the variable will only be accessible in the loop.

You normally don't need your loop counter value to be used outside the loop (there might be the odd case where this might make sense).

In most cases, yes, it will be better to keep variable initialization in the for statement. It will keep your code nice and readable.
scott_p_1 is offline  
Old 11-18-2004, 12:24 AM   #4 (permalink)
Junkie
 
Location: Montreal
Thanks for your insight, welsh & scott. You are both very kind to take the time.
At the risk of sounding even more dweebish, this learning shit is pretty exciting.
Much obliged!
crackpot is offline  
 

Tags
beginner, java, questions, total


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On



All times are GMT -8. The time now is 09:11 PM.

Tilted Forum Project

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2025, vBulletin Solutions, Inc.
Search Engine Optimization by vBSEO 3.6.0 PL2
© 2002-2012 Tilted Forum Project

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54