Best Way to Format Multiple 'Or' Conditions in an If Statement

Best way to format multiple 'or' conditions in an if statement

I use this kind of pattern often. It's very compact:

// Define a constant in your class. Use a HashSet for performance
private static final Set<Integer> values = new HashSet<Integer>(Arrays.asList(12, 16, 19));

// In your method:
if (values.contains(x)) {
...
}

A HashSet is used here to give good look-up performance - even very large hash sets are able to execute contains() extremely quickly.

If performance is not important, you can code the gist of it into one line:

if (Arrays.asList(12, 16, 19).contains(x))

but know that it will create a new ArrayList every time it executes.

What is better: multiple if statements or one if with multiple conditions?

One golden rule I follow is to "Avoid Nesting" as much as I can. But if it is at the cost of making my single if condition too complex, I don't mind nesting it out.

Besides you're using the short-circuit && operator. So if the boolean is false, it won't even try matching!

So,

if (boolean_condition && matcher.find(string)) {
...
}

is the way to go!

Styling multi-line conditions in 'if' statements?

You don't need to use 4 spaces on your second conditional line. Maybe use:

if (cond1 == 'val1' and cond2 == 'val2' and 
cond3 == 'val3' and cond4 == 'val4'):
do_something

Also, don't forget the whitespace is more flexible than you might think:

if (   
cond1 == 'val1' and cond2 == 'val2' and
cond3 == 'val3' and cond4 == 'val4'
):
do_something
if (cond1 == 'val1' and cond2 == 'val2' and
cond3 == 'val3' and cond4 == 'val4'):
do_something

Both of those are fairly ugly though.

Maybe lose the brackets (the Style Guide discourages this though)?

if cond1 == 'val1' and cond2 == 'val2' and \
cond3 == 'val3' and cond4 == 'val4':
do_something

This at least gives you some differentiation.

Or even:

if cond1 == 'val1' and cond2 == 'val2' and \
cond3 == 'val3' and \
cond4 == 'val4':
do_something

I think I prefer:

if cond1 == 'val1' and \
cond2 == 'val2' and \
cond3 == 'val3' and \
cond4 == 'val4':
do_something

Here's the Style Guide, which (since 2010) recommends using brackets.

How to format multiple 'or' conditions in an if statement in Python

In Python, | is bitwise-or. You want:

if word < 1 or word > 10:

Per the question update, the following is one way to check for a specific set of values:

if word not in (1,2,7,8,9,10):
print('invalid')

The equivalent and/or logic would be:

if word < 1 or (word > 2 and word < 7) or word > 10:
print('invalid')

But you can see the not in way is simpler.

multiple conditions in same if statement in C

hi try this hope its work

#include<stdio.h>
#include<cono.h>
#include<iostream.h>
#include<stdlib.h>
void main(void)
{
int a,b;
printf("enter a");
scanf("%d",&a);
printf("enter b");
scanf("%d",&b);
if(a==1 && b<=8)
{
printf("you");
exit(0);
} else if(a==2 && 5<b && b<=10)
{
printf("you");
}
else{
printf("me");
}
getch();
}

How to have multiple conditions for one if statement in python

I would use

def example(arg1, arg2, arg3):
if arg1 == 1 and arg2 == 2 and arg3 == 3:
print("Example Text")

The and operator is identical to the logic gate with the same name; it will return 1 if and only if all of the inputs are 1. You can also use or operator if you want that logic gate.

EDIT: Actually, the code provided in your post works fine with me. I don't see any problems with that. I think that this might be a problem with your Python, not the actual language.

What's the proper way to format if statements in Java with multiline ands or ors?

The Oracle/Sun guidelines ("Code Conventions for the Java TM Programming Language") tell us to break before an operator. And they give this example.

if ((condition1 && condition2)
|| (condition3 && condition4)
||!(condition5 && condition6)) {
doSomethingAboutIt();
}

Many companies that I've worked for adopt the Oracle/Sun guidelines as the standard for their own code.

Refer http://www.oracle.com/technetwork/java/javase/documentation/codeconventions-136091.html#248



Related Topics



Leave a reply



Submit