Transcript Fig 3-1.jpg

Assignment and Interactive Input
•
•
•
•
•
•
Java Shorthand Statements
Mathematical Methods
Conversion Methods
Interactive Keyboard Input
Interactive Dialog Input
Final Qualifier
©2004 Brooks/Cole
Java Shorthand
• Accumlator type
– totalInvoice = totalInvoice +
itemPrice;
• totalInvoice += itemPrice;
– Can use
• += , -=, *=, /=, %=
• If same variable name will be on
both side of assignment statement
©2004 Brooks/Cole
Java Shorthand Counters
• Special case when counter is incremented or
decremented by 1
• count = count + 1;
– Can be replaced with
• Count++;
– Can be used in assignment statements
• k = ++count;
• Means increment count first and then move the
value to k
©2004 Brooks/Cole
More Java Counter Shorthand
• count = count - 1
– Count--
• Prefix and postfix
– Important when used in assignment statements
• k = ++n
– n=n+1
– k=n
• k = n++
– k=n
– n=n+1
©2004 Brooks/Cole
Mathmatical Methods
Math.abs(x)
Math.pow(x1,x2)
Math.sqrt(x)
Math.ceil(x)
Math.floor(x)
Math.min(x,y)
Math.max(x,y)
Math.round(x)
Math.random(x)
©2004 Brooks/Cole
Using and Passing Data to
a Math Class Method
Figure 3.7:
©2004 Brooks/Cole
Mixed mode arithmetic and Casts
{
int a = 10;
float b = 20.0f;
double answer;
int answer2;
answer = a / b; // OK since double holds
answer2 = a / b;// Generates an error
answer2 = (int) (a / b); //OK since (int)
©2004 Brooks/Cole
Figure 3.8:
Conversions Using a Wrapper
Class Method
©2004 Brooks/Cole
Wrapper Class Conversion Routines
• All Start with desired class
• Method name of all is toString()
• parseInt(string)
• toString(x)
– Integer.parseInt("1234")
• parseLong(string)
– Long.parseLong("12345678")
• parseFloat(string)
– Float.parseFloat("12.34")
• parseDouble(string)
– Double.parseDouble("12.34")
– Interger.toString(123)
• toString(x)
– Long.toString(123455)
• toString(x)
– Float.toString(12.34)
• toString(x)
– Double.toString(12.34)
©2004 Brooks/Cole
System.in Is Used to Enter Data;
System.out Is Used to Display Data
Figure 3.9:
©2004 Brooks/Cole
Getting Input from the Keyboard
• InputStream
read() 1 keystroke at a time
• System.in.read();
• InputStreamReader
used to convert from
integer to string
• BufferedReader
readLine() Retruns the
characters typed at the keyboard as a string
• br.readline();
• The read() method not much use until we learn
more. EOF value needed (Ctrl Z)
©2004 Brooks/Cole
Figure 3.10:
Generating the EOF Value
©2004 Brooks/Cole
Figure 3.11:
The Required
Processing Using
System.in.read()
©2004 Brooks/Cole
Required Statements for using Keyboard
• import java.io.*;
• InputStreamReader isr = new InputStreamReader(System.in);
• BufferedReader br = new BufferedReader(isr);
• throws java.io.IOException
– after the main method line
©2004 Brooks/Cole
Using Keyboard input
• To get input from keyboard, define at least 1 string variable
– string s1;
• Display a prompt message to the end user
– System.out.print("prompt message here");
• s1 = br.readLine()
– If the Fact is a string fact you can now use it
– If the fact is a numeric fact you must now convert it using the proper
Wrapper Class.
©2004 Brooks/Cole
Figure 3.12:
A String Consisting of Three Tokens
©2004 Brooks/Cole
Figure 3.13:
Parsing Tokens
from a String
©2004 Brooks/Cole
Figure 3.14:
A NumberFormatException
Notification
©2004 Brooks/Cole
Figure 3.15:
A Sample showInputDialog() Dialog
©2004 Brooks/Cole
Figure 3.16:
The First Dialog After Data Are Entered
©2004 Brooks/Cole
Figure 3.17:
The Second Dialog After Data
Are Entered
©2004 Brooks/Cole
Figure 3.18:
A Sample Output Produced by
Program 3.13
©2004 Brooks/Cole
Figure 3.19:
The Input Dialog Created by
Program 3.14
©2004 Brooks/Cole
Figure 3.20:
A Sample Output Produced by
Program 3.14
©2004 Brooks/Cole
Result of Catching the
NumberFormatException Exception
Figure 3.21:
©2004 Brooks/Cole
Result of Catching the
NullPointerException Exception
Figure 3.22:
©2004 Brooks/Cole
Final Qualifier
• Variable means changeable but sometimes values we want
to use in our programs are really constants.
– pi - 3.1416
– Months per year - 12
– And many other and we do not want the program to
change we add the 'final' qualifier
• final double SALESTAX = 0.0825;// convention says
// 'final' type constants should be type all uppercase
©2004 Brooks/Cole
Next week
• Chapter 4 Relational Operators and
Decision Statements
• Beginning of repetition logic
• Assignment 2 available - due 4/4
©2004 Brooks/Cole
Placement of Constant definitions
• Up to now, we have defined everything
within the main method of our program. It
does restrict the useage of the value to the
method it is found in.
©2004 Brooks/Cole