Ruby gets a lot from Perl - including its eclecticness in having a wide variety of alternative ways of doing similar things - and no more so than in loops and conditionals. Not only do you have an
if but also an
unless. Not only do you have a
while but also an
until. And not only can you write these as conditional blocks (with the conditional code after the condition) but also the other way round as conditional modifiers.
so if you don't like this:
if (n <= 4)
c = c + 3
end
try this:
c += 3 unless n > 4
Further examples
[here] and something similar in Perl
[here].
Is all this variety a good thing? If used with care, yes ... but if thrown about with gay abandon, leading to unmaintainable code, probably not ... which means that in both Ruby and Perl you really need to think about code quality and standards from day one. Or should I say from
before day one ...
(written 2010-07-28, updated 2010-07-30)
Associated topics are indexed as below, or enter http://melksh.am/nnnn for individual articles
R104 - Ruby - Control Structures [960] 1st, 2nd, 3rd revisited in Ruby - (2006-12-02)
[962] Breaking a loop - Ruby and other languages - (2006-12-03)
[985] Equality in Ruby - == eql? and equal? - (2006-12-14)
[995] Ruby's case - no break - (2006-12-17)
[1163] A better alternative to cutting and pasting code - (2007-04-26)
[1220] for loop - how it works (Perl, PHP, Java, C, etc) - (2007-06-06)
[1582] Ruby, C, Java and more - getting out of loops - (2008-03-19)
[1587] Some Ruby programming examples from our course - (2008-03-21)
[1696] Saying NOT in Perl, PHP, Python, Lua ... - (2008-07-04)
[1738] Clean code, jump free (Example in Lua) - (2008-08-06)
[1870] What to do with a huge crop of apples - (2008-11-04)
[1887] Ruby Programming Course - Saturday and Sunday - (2008-11-16)
[1891] Ruby to access web services - (2008-11-16)
[1904] Ruby, Perl, Linux, MySQL - some training notes - (2008-11-23)
[2287] Learning to program in Ruby - examples of the programming basics - (2009-07-15)
[2471] A short form of if ... then ... else - (2009-10-23)
[2619] Passing code to procedures and yield in Ruby - (2010-02-02)
[2711] For loop - checked once, or evety time? Ruby v Perl comparison and contrast - (2010-04-07)
[2975] Why do I need brackets in Ruby ... or Perl, Python, C or Java - (2010-09-29)
[3156] Splitting data reading code from data processing code - Ruby - (2011-02-04)
[3158] Ruby training - some fresh examples for string handling applications - (2011-02-05)
[3159] Returning multiple values from a function call in various languages - a comparison - (2011-02-06)
[3200] How a for loop works Java, Perl and other languages - (2011-03-12)
[3253] Is this number between? Does this list include? - Ruby - (2011-04-18)
[3254] Multiple inputs, multiple out, ruby functions - (2011-04-19)
[3397] Does a for loop evaluate its end condition once, or on every iteration? - (2011-08-18)
[3422] Assigning values to variables within other statements - Ruby - (2011-09-07)
[3619] Ruby v Perl - a comparison example - (2012-02-21)
[3620] Finding the total, average, minimum and maximum in a program - (2012-02-22)
[3769] Muttable v immutable and implications - Ruby - (2012-06-20)
[4322] Learning to Program - the conditional statement (if) - (2014-11-21)
[4323] Learning to program - Loop statements such as while - (2014-11-22)
[4370] Conditionals, loops and methods in Ruby - a primer with simple examples - (2014-12-29)
[4402] Finding sum, minimum, maximum and average in Python (and Ruby) - (2015-01-19)
[4503] Separating your code for easier testing, understanding and re-use; example in Ruby - (2015-06-02)
[4504] Where does Ruby load modules from, and how to load from current directory - (2015-06-03)
[4674] Alternating valuses / flip-flop / toggle - example in Ruby - (2016-05-17)
P206 - Perl - More Loops and Conditionals [138] Perl - redo and last without a loop - (2004-12-02)
[299] What - no switch or case statement? - (2005-05-03)
[657] The ternary operator in Python - (2006-03-25)
[1191] Smart English Output - via PHP and Perl ? : operator - (2007-05-18)
[1825] Question Mark - Colon operator (Perl and PHP) - (2008-10-08)
[2815] switch and case, or given and when in Perl - (2010-06-17)
[2817] Setting a safety net or fallback value in Perl - (2010-06-19)
[2824] A pint of Black Rat, and a lazy barman - (2010-06-25)
[2832] Are you learning Perl? Some more examples for you! - (2010-06-27)
[2967] Multiway branches in Perl - the given and when syntax - (2010-09-22)
[2972] Some more advanced Perl examples from a recent course - (2010-09-27)
[3398] Perl - making best use of the flexibility, but also using good coding standards - (2011-08-19)
[3914] While, for, foreach or something else to loop. - (2012-11-06)
Some other Articles
LAMP - Linux, Apache, MySQL, PHP - install, configure, administerGlobal Computer Maintenance DepartmentSorting people by their namesExclamation marks and question marks on ruby method namesAlternative loops and conditionals in Ruby and PerlWiltshire Council ask how they can help businessesDates and times in PythonShould Python classes each be in their own file?Recent PicturesSnow Leopard and Python (that is OS X 10.6 and wxPython)