Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
10/5: Primitives, the for loop • Primitive data types – why we mention them • Return to counter-controlled repetition Primitives: why we mention them • recall Average2.java (p. 132) program: average = ( double ) total / gradeCounter ; • cast operators are used to explicitly promote (or change) one primitive type to another. • total and gradeCounter are both of type int. To return a non-int result from the equation, we need to specify a different type (ex: double). Primitive data types: numbers type bits 16 32 64 range of values • short -32,768 to +32,768 • int -2,147,483,648 to +2,147,483,648 • long -9,223,372,036,854,775,808 to +9,223,372,036,854,775,808 • float 32 -3.40292347E+38 to +3.40292347E+38 • double 64 -1.79769313486231570E+308 to +1.79769313486231570E+308 Primitive data types: other type • boolean • char • byte bits range of values 1 true or false 16 ‘\u0000’ to ‘\uFFFF’ Unicode character set 8 -128 to +127 Counter-controlled repetition: theory • Counter-controlled repetition requires: 1. the name of a control variable (loop counter); 2. the initial value of the control variable; 3. the increment (or decrement) by which the control variable is modified each pass through the loop. 4. the condition that tests for the final value of the control variable. Example: draw ten rectangles. //a while loop using counter-controlled repetition. import javax.swing.JApplet; //import JApplet class import java.awt.Graphics; //import Graphics class public class WhileCounter extends JApplet { //JApplet is superclass public void paint ( Graphics g ) //method for drawing name of control variable { int count = 1; //counting repetitions initial value int place = 25; //starting location for rectangle while ( count <= 10 ) { condition for g.drawRect ( place , place , 40 , 40 ); final value ++count; //increment count place += 15; //bump up place by 15 } } } increment the for repetition structure • A more efficient way of creating a repetition structure: • Contains all 4 elements necessary for repetition. condition for final value for ( int count = 1; count <= 10; count++ ) name of control variable increment initial value What will be replaced. //a while loop using counter-controlled repetition. import javax.swing.JApplet; //import JApplet class import java.awt.Graphics; //import Graphics class public class WhileCounter extends JApplet { //JApplet is superclass public void paint ( Graphics g ) //method for drawing { int count = 1; //counting repetitions int place = 25; //starting location for rectangle while ( count <= 10 ) { g.drawRect ( place , place , 40 , 40 ); ++count; //increment count place += 15; //bump up place by 15 } } } the ‘for’ version //a ‘for’ loop alternative for counter-controlled repetition. import javax.swing.JApplet; //import JApplet class import java.awt.Graphics; //import Graphics class public class ForCounter extends JApplet { //JApplet is superclass public void paint ( Graphics g ) //method for drawing { int place = 25; //starting location for rectangle for ( int count = 1 ; count <= 10 ; ++count ) { g.drawRect ( place , place , 40 , 40 ); place += 15; //bump up place by 15 } } } Using for loops for animation: pt. 1 //a for loop as an alternative for counter-controlled repetition. import javax.swing.JApplet; import java.awt.Graphics; import java.awt.Color; //import JApplet class //import Graphics class //import Color class public class ForCounter3 extends JApplet { //JApplet is superclass public void paint ( Graphics g ) //method for drawing { int xPos = 25; //starting x location for rectangle int yPos = 25; //starting y location for rectangle boolean reverseX = false; //"which way to go" trigger boolean reverseY = false; //"which way to go" trigger get java file: ForCounter3 Using for loops for animation: pt. 2 for ( int count = 1 ; count <= 200 ; ++count ) { g.setColor(Color.white); g.drawRect ( xPos , yPos , 40 , 40 ); if ( xPos < 300 && reverseX == false ) xPos += 15; //bump up xPos by 15 if xPos < 300 else { xPos -= 5; //reduce xPos by 12 if xPos >= 300 reverseX = true ; if ( xPos < 10 ) reverseX = false ; } get java file: ForCounter3 Using for loops for animation: pt. 3 if ( yPos < 250 && reverseY == false ) yPos += 10; //bump up yPos by 10 if yPos < 250 else { yPos -= 7; //reduce yPos by 7 if yPos >= 250 reverseY = true; if ( yPos < 10 ) reverseY = false; } g.setColor(Color.blue); g.drawRect ( xPos , yPos , 40 , 40 ); //just to slow it down and look like animation for ( byte i = 1 ; i < 100 ; i++ ) repaint(); } get java file: ForCounter3 First program of the day • pg. 167 Interest.java • After you successfully run the program, alter it to use a “while” loop instead of a “for” loop. Part 2: the switch selection structure • looking at Interest.java – use of postincrement – Math.pow( 1.0 + rate, year ) – JTextArea • switch multiple-selection structure Interest.java: use of postincrement • for ( int year = 1 ; year <= 10 ; year++ ) – would a change to a preincrement cause a changed output? – No, because it executes like it is the only thing happening in a statement: year++ ; Interest.java: Math.pow • Math.pow( 1.0 + rate, year ); – Math class method Math.pow( x , y ); y – calculates x to the y power: x – listed in the java.lang.Math library Interest.java: JTextArea • JTextArea: a type of output area. • we create a new object ( outputTextArea ) as an instance of the class JTextArea: instantiation. • associated method: append – means add onto the JTextArea some type of String output. – the append method works similarly to saying result = result + “\n” + x + “ dollars”; (EX) • View more info about JTextArea at java.sun.com the switch multiple-selection structure • previously selection structures: if, if/else switch ( pizzaSlice ) { case 1: System.out.print ( "Take more" ); break; case 2: System.out.print ( “Just right” ); break; default: System.out.print ( "Have some pizza, man!" ); break; switch multiple selection structure • consists of cases with labels, including the default case • break exits the structure • controlling variable’s value – compared to each case label – if no match, the default case is executed • can handle integers Second Program: p. 170 SwitchTest • after you get it to work, modify the program: – Ask first for a color ( pick 3 colors: black, blue, cyan, darkGray, gray, lightGray, green, magenta, orange, pink, red, white, yellow ) to use in the next step. You must import the java.awt.Color class. Use the following statement example to set the color: g.setColor ( Color.yellow ); – Then ask the user for their choice of lines, hollow rectangles, filled rectangles, hollow ovals, and filled ovals. applicable methods: drawLine, drawRect, fillRect, drawOval, fillOval.