Two Meanings of Plus

In Java, the symbol + can be used to add numbers or to concatenate strings. This exercise illustrates both uses.

When using a string literal (a sequence of characters enclosed in double quotation marks) in Java the complete string must fit on one line. The following is NOT legal (it would result in a compile-time error).

    System.out.println ("It is NOT okay to go to the next line
                           in a LONG string!!!");
The solution is to break the long string up into two shorter strings that are joined using the concatenation operator (which is the + symbol). This is discussed in Section 2.2 in the text. So the following would be legal
    System.out.println ("It is OKAY to break a long string into " +
                           "parts and join them with a + symbol.");
So, when working with strings the + symbol means to concatenate the strings (join them). BUT, when working with numbers the + means what it has always meant -- add!
  1. Observing the Behavior of + To see the behavior of + in different settings do the following:
    1. Study the program below, which is in file PlusTest.java.
      // *******************************************************************
      //   PlusTest.java
      // 
      //   Demonstrate the different behaviors of the + operator
      // *******************************************************************
      
      public class PlusTest
      {
          // -------------------------------------------------
          // main prints some expressions using the + operator
          // -------------------------------------------------
          public static void main (String[] args)
          {
      	System.out.println ("This is a long string that is the " +
      			    "concatenation of two shorter strings.");
      
      	System.out.println ("The first computer was invented about" + 55 +
      			    "years ago.");
      
      	System.out.println ("8 plus 5 is " + 8 + 5);
      
      	System.out.println ("8 plus 5 is " + (8 + 5));
      
      	System.out.println (8 + 5 + " equals 8 plus 5.");
          }
      }
      
    2. Save PlusTest.java to your directory.
    3. Compile and run the program. For each of the last three output statements (the ones dealing with 8 plus 5) write down what was printed. Now for each explain why the computer printed what it did given that the following rules are used for +. Write your explanations in the lab document.
      • If both operands are numbers + is treated as ordinary addition. (NOTE: in the expression a + b the a and b are called the operands.)
      • If at least one operand is a string the other operand is converted to a string and + is the concatenation operator.
      • If an expression contains more than one operation expressions inside parentheses are evaluated first. If there are no parentheses the expression is evaluated left to right.
    4. The statement about when the computer was invented is too scrunched up. How should that be fixed?

  2. Writing Your Own Program With + Now write a complete Java program, TenRobins.java, that prints out the following sentence:
       Ten robins plus 13 canaries is 23 birds.
    
    Your program must use only one statement that invokes the println method. It must use the + operator both to do arithmetic and string concatenation.

To submit

  1. Answers to 1c and 1d in the lab document.
  2. The file, TenRobins.java, that solves question 2.