SahotaSkywalker
SahotaSkywalker

Reputation: 53

I want my javascript to move to the next if statement if the first one evaluates as TRUE

I want to check for negative values and if there is change them to its default value.

for (i = 0; i <= 1; i++) {
    //I want this to run this statement once and if its true perform all the functions and move to the next one
    if (h1 < 0 || h2 < 0) {
        alert("negative number is not acceptable here");
        document.getElementById("up1").value = document.getElementById("up1").defaultValue;
        document.getElementById("q1").value = document.getElementById("q1").defaultValue;
        document.getElementById("tot1").value = document.getElementById("tot1").defaultValue;
        Total1 = 0.00;
        continue;

    }
    else if (h3 < 0 || h4 < 0) {
        alert("No Negative here as well")
        document.getElementById("up2").value = document.getElementById("up2").defaultValue;
        document.getElementById("q2").value = document.getElementById("q2").defaultValue;
        document.getElementById("tot2").value = document.getElementById("tot2").defaultValue;
        continue;

    }
    //I have a let Total1 & Total2 variables at the beggining of the code set to zero
    //
    Total2 = h3 * h4;
}    

Hi guys is there anyway to continue to the next else if statement if the first IF statement evaluates to TRUE and runs all the functions in it. Currently, if the first IF statement evaluates to true it performs all the functions in it and ends the loop. I want it to check each variable for a negative without repeating the code all over again.

Upvotes: 0

Views: 617

Answers (3)

Syllight
Syllight

Reputation: 331

If you want to run the second block only if the first if block is true:

if (h1 < 0 || h2 < 0) {
   /* Your code */

   if(h3 < 0 || h4 < 0){
       /* rest of your code */
   }
}

Upvotes: 1

Charlie
Charlie

Reputation: 23798

You just need two linear if statements.

for (i = 0; i <= 1; i++) {
    //I want this to run this statement once and if its true perform all the functions and move to the next one

    if (h1 < 0 || h2 < 0) {
        alert("negative number is not acceptable here");
        document.getElementById("up1").value = document.getElementById("up1").defaultValue;
        document.getElementById("q1").value = document.getElementById("q1").defaultValue;
        document.getElementById("tot1").value = document.getElementById("tot1").defaultValue;
        Total1 = 0.00;
    }
    

   if (h3 < 0 || h4 < 0) {
       alert("No Negative here as well")
       document.getElementById("up2").value = document.getElementById("up2").defaultValue;
       document.getElementById("q2").value = document.getElementById("q2").defaultValue;
       document.getElementById("tot2").value = document.getElementById("tot2").defaultValue; 
     }

    Total2 = h3 * h4;
}  

Upvotes: 0

Muhammad Atif Akram
Muhammad Atif Akram

Reputation: 1315

There are two cases for your problem.

  1. You want to run the second block only if the first if block is true.
  2. You want to run the second block either the first block is true or false

First case

isFirstBlockTrue = false
if (h1 < 0 || h2 < 0) {
   isFirstBlockTrue = true
   /* rest of your code */
}

if(isFirstBlockTrue){

  if (h3 < 0 || h4 < 0) {
    /* rest of your code */
  }

}

 /* rest of your code */

Second Case

if (h1 < 0 || h2 < 0) {
  /* first block code */
}
if (h3 < 0 || h4 < 0) {
  /* second block code */
}

Note: Don't use the continue otherwise it will skip the iteration

Upvotes: 2

Related Questions