How to use not equal and or

ingresa = gets.chomp
ingresa = ingresa.downcase
if ingresa !=“sum”||ingresa !=“sub”||ingresa !=“mul”||ingresa !=“div”
puts"You didn’t type [Sum,Sub,Mul,Div]"
puts"Try again."
end

Hi to everyone, I’m a newbie with ruby and I don’t know what I doing
wrong with my code, i want to make a simple calculator just for training
so what I want to do is to make sure that the user receives a message
that he didn’t type sum, sub, mul or div to start the calculator, the
other part is finished and working but I don’t know how to solve this,
could you help me with this issue and explain me a little my mistake.
thank you!

On Fri, Aug 2, 2013 at 1:55 PM, Jesus A. [email protected]
wrote:

that he didn’t type sum, sub, mul or div to start the calculator, the
other part is finished and working but I don’t know how to solve this,
could you help me with this issue and explain me a little my mistake.
thank you!

I believe your logic is wrong here. You want to check if one of “sum”,
“sub”, “mul”, or “div” is your input, which would indicate that your
logic should be:

if ingresa != “sum” && ingresa != “sub” && ingresa != “mul” && ingresa
!= “div”
puts “You didn’t type [Sum,Sub,Mul,Div]”
puts “Try again.”
end

You could also take advantage of the #include? method on the Array
class:

unless [“sum”, “sub”, “mul”, “div”].include?(ingresa)
puts “You didn’t type [Sum,Sub,Mul,Div]”
puts “Try again.”
end

Hope this helps

On Fri, Aug 2, 2013 at 2:55 PM, Jesus A. [email protected]
wrote:

ingresa = gets.chomp
ingresa = ingresa.downcase

BTW, a tip: you can combine these two as “ingresa =
gets.chomp.downcase”. :slight_smile:

if ingresa !=“sum”||ingresa !=“sub”||ingresa !=“mul”||ingresa !=“div”

Close!

Sounds it out in English. “If it’s not sum, or it’s not sub, or it’s
not mul, or it’s not div”. Or in my probably-bad Spanish (which I’m
guessing might be your first language), “Si no esta sum, o no esta
sub, o no esta mul, o no esta div”. Doesn’t that just sound logically
wrong to you, even in human-language? Now, think about what small
change would make the logic correct, in human-language. Or, just how
you would say it, in human. Then make that change in Ruby.

Alternately, you could do something like “if it’s sum, add them, else
if it’s sub, subtract, else if it’s mul, multiply, else if it’s div,
divide, else complain”. You could do that with an if-elsif-else
chain, or a case statement, which is a very common way of acting on
one of several options.

Lastly, another general tip: your code would be more legible, and
possibly easier for you to edit, with spaces in it, like so:

if ingresa != "sum" || ingresa != "sub" || ingresa != "mul" ||

ingresa != “div”

-Dave

Ok I got it, Thanks Matt and Dave, also I liked the tip that combine
methods, and the include? method, and I will use spaces to read code
better. thanks again!!