Difference between revisions of "Control Structures"

From CompSciWiki
Jump to: navigation, search
m (Change italic to bold in intro)
 
(11 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{1010Chapter|Introduction='''Control Structures''' are blocks of code that force the computer to make a decision.  Sometimes you will want your program to perform different tasks depending on certain [[boolean]] conditions.  For example if you were writing a game you would probably find it very useful to be able to know when the user has won the game so that you could show a high scores page.
+
{{1010Chapter
 +
|ChapterNum=4
 +
|Picture=Wiki_sign01.jpg
 +
|Introduction='''Control Structures''' are blocks of code that force the computer to make a decision.  Sometimes you will want your program to perform different tasks depending on certain [[Common Primitive Variables#Primitive Type boolean|boolean]] conditions.  For example if you were writing a game you would probably find it very useful to be able to know when the user has won the game so that you could show a high scores page.
  
If control structures were not used then programs would begin at the first line and excecute every line of code in order, giving the same output every time. Imagine how boring ''Tetris'' would be if there was only one piece!  Control structures allow you to change the order of execution, jumping from one section of code to another as needed. }}
+
If control structures were not used then programs would begin at the first line and excecute every line of code in order, giving the same output every time. Imagine how boring ''Tetris'' would be if there was only one piece!  Control structures allow you to change the order of execution, jumping from one section of code to another as needed.
 
+
__NOTOC__
+
  
 +
|Body=
 
==[[The If-Statement]]==
 
==[[The If-Statement]]==
  
Line 13: Line 15:
 
==[[Nesting]]==
 
==[[Nesting]]==
  
==[[Review Questions and Exercises]]==
+
==[[Control Structures Review Questions and Exercises|Review Questions and Exercises]]==
 
+
 
+
 
+
===Comparing Strings===
+
Strings are a very large subject so we will only touch the basics about comparing strings in this section. The first way to compare strings is by using the relational operators. The most common approach is to use the '''==''' to see if two strings are equal. Here is an example on how strings can be compared.
+
 
+
<PRE>
+
String str1 = "hello";
+
String str2 = "hello";
+
 
+
if (str1 == str2)
+
  System.out.println("The strings are equal");
+
else
+
  System.out.println("The strings are not equal");
+
</PRE>
+
 
+
The example above will print out "The strings are equal". It seems simple enough. However, when using the '''==''' to compare strings, it will compare by reference instead of by value. Another example will help demonstrate what this means.
+
 
+
<PRE>
+
String str1 = "hello";
+
String str2 = "he";
+
String str3 = "llo";
+
str2 = str2 + str3; // The value is now "hello".
+
 
+
if (str1 == str2)
+
  System.out.println("The strings are equal");
+
else
+
  System.out.println("The strings are not equal");
+
</PRE>
+
 
+
What will be the output of the code above? If you said "The strings are equal" because "hello" is equal to "hello" even though they are concatenated together, you are wrong. We will avoid explaining the details for now. All you need to know is that the values of the strings are '''NOT''' being compared. This will vary between every programming language. In C# you may compare by values or by references, while in Java you can compare references only.
+
 
+
There is a safer way to compare strings. The [http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html Java String API] contains dozens of useful methods, but we will only look at one. The "equals" method is a great way to compare the values between two strings. Here is the same code as above using the "equals" method for comparison.
+
 
+
<PRE>
+
String str1 = "hello";
+
String str2 = "he";
+
String str3 = "llo";
+
str2 = str2 + str3; // The value is now "hello".
+
 
+
if (str1.equals(str2))
+
  System.out.println("The strings are equal");
+
else
+
  System.out.println("The strings are not equal");
+
</PRE>
+
 
+
This time the program will print out "The strings are equal". The "equals" method takes the value of "str1" and compares it to the value of "str2". Since the value of both are "hello", they are considered equal, and ''true'' will be the result of the condition.
+
 
+
Note that the "equals" method is case sensitive. Therefore, "HELLO" and "hello" are not considered to be equal. However, the [http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html Java String API] has an "equalsIgnoreCase" method which would consider the above strings to be equal.
+
 
+
That concludes our introduction for comparing strings. Just be aware that there are other ways to compare strings, but most of them are beyond the scope of this class.
+
 
+
==Nesting==
+
 
+
===If-Else Ladders===
+
====A Second Example====
+
The following program asks the user for two sports scores and tells the user which team won or if the game was a draw.  The key components to pay attention to are lines '''07 to 14'''.
+
 
+
<pre>
+
00 public static void main(String[] args)
+
01 {
+
02    int scoreA, scoreB;
+
03   
+
04    scoreA = Integer.parseInt(JOptionPane.showInputDialog(null,"Enter Team A's score"));
+
05    scoreB = Integer.parseInt(JOptionPane.showInputDialog(null,"Enter Team B's score"));
+
06
+
07    if(scoreA > scoreB)
+
08    {
+
09        System.out.println("Team A won");
+
10    }//if
+
11
+
12    else if(scoreA < scoreB)
+
13    {
+
14        System.out.println("Team B won");
+
15    }//else if
+
16
+
17    else
+
18    {
+
19        System.out.println("The game was a draw");
+
20    }//else
+
21 }//main
+
</pre>
+
 
+
 
+
==Review Questions and Exercises==
+
The solutions to these exercises can be found [[Control Structures Solutions|here]].
+
 
+
===Review Questions===
+
#Name the 3 different logical operators. What are the benefits of using logical operators?
+
#What is the proper way in Java to compare strings? Why?
+
#What are the results of the following logical operations?
+
## 'a' != 'b'
+
## (127-3*9) >= (97+8/4)
+
## "Hello" == "Hello"
+
#Write the truth table for the expression (X || Y) && Z
+
 
+
 
+
===Exercises===
+
1. Look at the code below. Clean it up so it uses the proper logical operators and proper use of if-else's.
+
 
+
<PRE>
+
if (x == 1)
+
{
+
  if (y == 1)
+
  {
+
    if (!!!!true)
+
    {
+
      System.out.println("X and Y are 1!");
+
    }
+
  }
+
}
+
if (x == 2)
+
{
+
  System.out.println("X is 2!");
+
}
+
if (x < 1)
+
{
+
  System.out.println("X is under 1 or over 2!");
+
}
+
if (x > 2)
+
{
+
  System.out.println("X is under 1 or over 2!");
+
}
+
</PRE>
+
 
+
 
+
 
+
2. Is the result of the following statement true or false?
+
 
+
<PRE>
+
String s1 = "test";
+
String s2 = "TEST";
+
String s3 = "test";
+
 
+
if (!(!(s1.equals(s2) && s1.equals(s3)) || s2.equals(s3)))
+
  System.out.println("The result is true");
+
else
+
  System.out.println("The result is false");
+
</PRE>
+
  
3. Write a program that will prompt a user to enter an integer. The program will determine whether the number is even or odd and print out the result. It will print out a different result if the number is negative. The program will continue until the user enters a 0. Also note that if the user enters a 0, the program will not print out anything other than that the program has finished.
+
|PChapterNum=3
 +
|PChapterLink=[[Calling Methods]]
 +
|NChapterNum=5
 +
|NChapterLink=[[Loops]]
 +
}}
  
4. Write a program that will prompt the user to enter a string.  The program will print out whether or not the first character is a vowel or not.
 
  
 
{{Category:COMP 1010}}
 
{{Category:COMP 1010}}
{{Category:Java}}
 

Latest revision as of 13:57, 7 December 2011


Wiki 1010 Table of Contents

Wiki sign01.jpg

Chapter 4

Control Structures are blocks of code that force the computer to make a decision. Sometimes you will want your program to perform different tasks depending on certain boolean conditions. For example if you were writing a game you would probably find it very useful to be able to know when the user has won the game so that you could show a high scores page.

If control structures were not used then programs would begin at the first line and excecute every line of code in order, giving the same output every time. Imagine how boring Tetris would be if there was only one piece! Control structures allow you to change the order of execution, jumping from one section of code to another as needed.

  Write a Program a Day Case Studies

The If-Statement

The If-Else Statement

Conditions

Nesting

Review Questions and Exercises




Chapter 3: Calling Methods Table of Contents Chapter 5: Loops



Template loop detected: