Hello and welcome to our community! Is this your first visit?
Register
Enjoy an ad free experience by logging in. Not a member yet? Register.
Results 1 to 9 of 9
  1. #1
    New to the CF scene
    Join Date
    Jan 2010
    Posts
    5
    Thanks
    1
    Thanked 0 Times in 0 Posts

    Question Need help with school for if loop problem!!

    Hi all
    I'm a student and need help with this javascrip program. I can't get it to work right you can put user1 and paas2 and it still lets you in. I don't know how loops works. Thanks

    <html>

    <head>
    <title>assign 2 JavaScript</title>
    </head>

    <body>
    <h1>Logon to your JavaScript Class</h1>
    <script language="JavaScript" type="text/javascript">
    // Assignment 2 CSWB 120 Spring 2010 //

    {
    var userid = new Array();
    userid[0] = "user1";
    userid[1] = "user2";
    userid[2] = "user3";

    var password = new Array();
    password[0] = "pass1";
    password[1] = "pass2";
    password[2] = "pass3";


    var user_answer = prompt ("What is your user id?","");
    user_answer = user_answer.toLowerCase();


    for(array_counter = 0; array_counter <3; array_counter++)

    {
    if (user_answer == userid[array_counter])
    {


    var user_answer = prompt ("What is your Password?","");
    user_answer = user_answer.toLowerCase();
    }

    else

    {
    }
    {
    document.write("<p> <font color=red> ERROR:Userid not vaild Please try again. </font></p>");
    }

    }
    for(array_counter = 0; array_counter <3; array_counter++)


    {
    if (user_answer == password[array_counter])

    {

    document.write("<p> <font color=blue>Welcome to the JavaScript Class. </font></p>");

    }

    else

    {

    document.write("<p> <font color=red> ERROR: Password not vaild Please try again. </font></p>");

    }


    }






    }
    </script>




    </body>

    </html>

    Thanks for any help you can give me.

  • #2
    Senior Coder Spudhead's Avatar
    Join Date
    Jun 2002
    Location
    London, UK
    Posts
    1,856
    Thanks
    8
    Thanked 110 Times in 109 Posts
    Hi. Couple of things first of all:

    1. The posting rules ask that you don't post homework assignments. We're here to help but we can't give you the answers.

    2. When you're posting code, please wrap it in [CODE] tags to make it easier for us to read.

    Regarding your question, this reference might help your understanding of loops, although you don't seem to far off with that part.

    Two things to consider:

    1. userid.length will return the number of items in the array. It might be better to use that in your loop, so if you change the number of items in the array, you don't have to remember to change the number in your loop.

    2. You're reusing the variable user_answer for both the userid input and their password input. This is causing you problems - using a different variable name for each piece of information will make it easier for you to track what's going on in your script.

  • #3
    New to the CF scene
    Join Date
    Jan 2010
    Posts
    5
    Thanks
    1
    Thanked 0 Times in 0 Posts
    Quote Originally Posted by Spudhead View Post
    Hi. Couple of things first of all:

    1. The posting rules ask that you don't post homework assignments. We're here to help but we can't give you the answers.

    2. When you're posting code, please wrap it in [CODE] tags to make it easier for us to read.

    Regarding your question, this reference might help your understanding of loops, although you don't seem to far off with that part.

    Two things to consider:

    1. userid.length will return the number of items in the array. It might be better to use that in your loop, so if you change the number of items in the array, you don't have to remember to change the number in your loop.

    2. You're reusing the variable user_answer for both the userid input and their password input. This is causing you problems - using a different variable name for each piece of information will make it easier for you to track what's going on in your script.
    Ok Thanks.
    I'm just so confused about this. I can't seems to understand how to get it to work right.... It all ways loops though all three. My teacher is upset with me because I can't get it too. He just says its right there in front of me but I can't see it. If I can't get this I might as well drop out of class.

    Thanks again for your help and your answer.

  • #4
    Senior Coder Spudhead's Avatar
    Join Date
    Jun 2002
    Location
    London, UK
    Posts
    1,856
    Thanks
    8
    Thanked 110 Times in 109 Posts
    My best advice would be to write out, in comments, the logic of your script. Then you can almost fill it in with the code that does whatever the comments describe.

    So you might start with:

    Code:
    /*
    	Create array of login details
    */
    
    
    
    /*
    	Ask the user for their username
    */
    
    
    
    /*
    	Loop through the login details array, looking for the username they entered.
    	If I find it, make a note of it.
    	If I don't, alert the user.
    */
    
    
    
    /*
    	If I've find a matching username, note the password that corresponds to it, and ask the user for their password
    */
    
    
    	
    /*
    	Check that the password they entered matches the one I have made a note of.
    */
    
    
    
    /*
    	If the passwords don't match, alert the user.
    */

  • #5
    New to the CF scene
    Join Date
    Jan 2010
    Posts
    5
    Thanks
    1
    Thanked 0 Times in 0 Posts

    Question

    Quote Originally Posted by Spudhead View Post
    My best advice would be to write out, in comments, the logic of your script. Then you can almost fill it in with the code that does whatever the comments describe.

    So you might start with:

    Code:
    /*
    	Create array of login details
    */
    
    
    
    /*
    	Ask the user for their username
    */
    
    
    
    /*
    	Loop through the login details array, looking for the username they entered.
    	If I find it, make a note of it.
    	If I don't, alert the user.
    */
    
    
    
    /*
    	If I've find a matching username, note the password that corresponds to it, and ask the user for their password
    */
    
    
    	
    /*
    	Check that the password they entered matches the one I have made a note of.
    */
    
    
    
    /*
    	If the passwords don't match, alert the user.
    */
    Like I said I'm really confused about this!!! Why does it keep looping when it find the right id and password? I run it and it said found on one of them then comes up with the error on the other two, What I can't get is how to stop it. ok Thanks but I guess I will just have to drop the class because this has really got me stressed too. Thanks to everyone that tryed to help me.
    Ruger

  • #6
    Senior Coder Spudhead's Avatar
    Join Date
    Jun 2002
    Location
    London, UK
    Posts
    1,856
    Thanks
    8
    Thanked 110 Times in 109 Posts
    Ok. Look. Here's what happens when we step through your code, line by line:

    Code:
    var user_answer = prompt ("What is your user id?","");
    user_answer = user_answer.toLowerCase();
    So we've now got their user ID, stored in a variable called "user_answer".

    Fine, but we know that we're going to ask the user for at least two answers, so storing one of them in a variable called "user_answer" probably isn't great. Storing their user ID in a variable called... oh, lets say: "user_id", will lessen the potential for confusion.

    Code:
    for(array_counter = 0; array_counter <3; array_counter++){
    Ok, so we've started looping. We're going to loop three times because we've written it right there in the loop. But since what we actually want to do is loop through each element of an array, we may as well use array.length to get the actual number of elements and use that to control how many times we're looping.

    Code:
    if (user_answer == userid[array_counter]){
    This makes sense: see if the current element in the userid array matches the value that we just asked the user for; the one that we stored in the variable user_answer. And if it does, do this:

    Code:
    var user_answer = prompt ("What is your Password?","");
    user_answer = user_answer.toLowerCase();
    Logically, this makes sense: we've found a matching user ID, so ask them for their password.

    But wait: here's that user_answer variable again. And this time it's being used for the password! In the middle of a loop that compares the value of a variable called user_answer, we've just changed the value of that variable. That's going to cause us problems.

    Let's move on for now though:

    Code:
    else
    
    {
    }
    {
    document.write("<p> <font color=red> ERROR:Userid not vaild Please try again. </font></p>");
    }
    I can sort of see what you're trying to do here, but the syntax is... a little out.


    You're saying "if we don't find the user ID that they entered, in our array of user IDs, write an error". Couple of problems, though:

    First, you're doing this while you're still inside the loop. So even if it does find a value in the array that matches what they entered, it'll do the error-writing bit for every value it finds that doesn't match.

    Second, you've got way to many brackets up there. You can delete the first two, leaving just the ones around the document.write() bit. This won't solve the first issue, but it'll help.

    Next line:

    Code:
    }
    for(array_counter = 0; array_counter <3; array_counter++)
    Ok, so the bracket closes your first loop. And then we start another loop.


    Code:
    if (user_answer == password[array_counter])
    
    {
    
    document.write("<p> <font color=blue>Welcome to the JavaScript Class. </font></p>");
    
    }
    
    else
    
    {
    
    document.write("<p> <font color=red> ERROR: Password not vaild Please try again. </font></p>");
    
    }
    Fine. Logical, syntax all makes sense. It's just in completely the wrong place in your code. Again: writing out what you need your script to do, in simple, logical steps - before you write a single line of actual code - will help you immensely:

    1. Get their username
    2. Get their password
    3. Find their username in the array
    4. If we find it, check that the corresponding password matches the password they entered


    You can then go through each of those steps, breaking each down into its own set of steps.

    Have another go at your script. Don't worry if it doesn't make sense; it will do eventually. I can't do it for you, but I can help you understand as best I can. Keep asking questions.

  • Users who have thanked Spudhead for this post:

    rugerky (02-09-2010)

  • #7
    New to the CF scene
    Join Date
    Jan 2010
    Posts
    5
    Thanks
    1
    Thanked 0 Times in 0 Posts
    Thanks for your help on this. I have tried all weekend but I just don't seem to get it.
    I dropped out of class because if i don't get this simple problem its only going to get harder. I'm going to keep on trying anyway. If you want to keep teaching me I would be thankful.
    Thanks again
    Roger

  • #8
    Senior Coder Spudhead's Avatar
    Join Date
    Jun 2002
    Location
    London, UK
    Posts
    1,856
    Thanks
    8
    Thanked 110 Times in 109 Posts
    Well, I'd try building your script again, using those four steps at the end of my last post as a guide.

    You've got all the code to do it. All you need to do it put it in the right order.

  • #9
    New to the CF scene
    Join Date
    Jan 2010
    Posts
    5
    Thanks
    1
    Thanked 0 Times in 0 Posts
    Here it don't lop now I guess. What did I do wrong now.

    <html>

    <head>
    <title>assign 2 JavaScript</title>
    </head>

    <body>
    <h1>Logon to your JavaScript Class</h1>
    <script language="JavaScript" type="text/javascript">

    var userid = new Array();
    userid[0] = "user1";
    userid[1] = "user2";
    userid[2] = "user3";

    var password = new Array();
    password[0] = "pass1";
    password[1] = "pass2";
    password[2] = "pass3";


    var user_id = prompt ("What is your user id?","");
    user_id = user_id.toLowerCase();

    for (var count = 0; count < user_id.lenght; count++);


    {
    if(user_id == userid[count])

    {

    var user_password = prompt ("What is your Password?","");
    user_password = user_password.toLowerCase();



    }
    else
    {
    document.write("<p> <font color=red> ERROR:Userid not vaild Please try again. </font></p>");
    }
    }

    for (var count = 0; count < password.lenght; count++);

    {
    if (user_password == password[count])

    {
    document.write("<p> <font color=blue>Welcome to the JavaScript Class. </font></p>");

    }
    else
    {

    document.write("<p> <font color=red> ERROR: Password not vaild Please try again. </font></p>");

    }

    }

    </script>


    </body>

    </html>


  •  

    Tags for this Thread

    Posting Permissions

    • You may not post new threads
    • You may not post replies
    • You may not post attachments
    • You may not edit your posts
    •