Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 125
  • Last Modified:

comparing sign of two numbers

Hi,
I was going through below link
http://codingbat.com/prob/p192082



I wrote solution as below

public boolean icyHot(int temp1, int temp2) {
  if(temp1<0 && temp2>100)
  {
  return true;
  }
 
   if(temp1>0 && temp2<100)
  {
  return true;
  }
  return false;
}



I saw given solution as below


public boolean icyHot(int temp1, int temp2) {
  if ((temp1 < 0 && temp2 > 100) || (temp1 > 100 && temp2 < 0)) {
    return true;
  } else {
    return false;
  }
  // Could be written as: return ((temp1 < 0 && ...));
}

can the natural flow of next line can be written always after || (which is the only difference i see from my program.

Please advise
0
gudii9
Asked:
gudii9
2 Solutions
 
ozoCommented:
if( a ){
  return true;
}
if( b ){
  return true;
}
return false;

is equivalent to

if( (a) || (b) ){
  return true;
}else{
  return false;
}
0
 
käµfm³d 👽Commented:
Can you please clarify your question?
0
 
gudii9Author Commented:
public boolean icyHot(int temp1, int temp2) {


if( (a) || (b) ){
  return true;
}


}

Open in new window


why above code wont compile?  Giving return statement in if loop alone is not sufficient. Do i need to give outside if loop also?
please advise.
0
Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
käµfm³d 👽Commented:
Because you don't have a return statement outside of the if block. Think about it this way:  If your code never entered the if block, what would it return? We cannot tell because you have not defined anything.
0
 
ozoCommented:
Because you didn't define a and b

(The equivalent form would also not compile for equivalent reason)

I see no loop in your code, so I don't understand your last comment.
0
 
dpearsonCommented:
Your original solution is fine and just as good as the "given solution" on the website.

As you said, the only difference is that they put the two conditions together with an "||" (or) and you broke them out into separate lines.  Either approach is fine.

I think you misunderstood what ozo posted.  He was basically saying that the two solutions are equivalent (he just said it in code).

Doug
0

Featured Post

What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now