Data Types L2

advertisement
Lecture 2
Data Types
Richard Gesick
Figures from Lewis, “C# Software Solutions”, Addison Wesley
CSE 1301
Topics
• Character Strings
• Variables and Assignments
• Primitive Data Types
CSE 1301
Review
•
•
•
•
•
•
•
CSE 1301
C# program structure
Comments
Identifiers
White space
Objects
Classes
Methods
CSE 1301
Program Structure
• In the C# programming language:
– A program is made up of one or more classes
– A class contains one or more methods
– A method contains program statements
• These terms will be explored in detail
throughout the course
• An application always contains a method
called Main
CSE 1301
Building Blocks - Comments
• Comments explain the program to yourself and
others
• Block comments
–
–
–
–
Can span several lines
Begin with /*
End with */
Compiler ignores all text between /* and */
• Line comments
– Start with //
– Compiler ignores text from // to end of line
CSE 1301
Identifiers - symbolic names
• Identifiers are used to name classes,
variables, and methods
• Identifier Rules:
– Must start with a letter
– Can contain essentially any number of letters and
digits, but no spaces
– Case sensitive!!
• Number1 and number1 are different!
– Cannot be keywords or reserved words
CSE 1301
CSE 1301
White Space
• Spaces, blank lines, and tabs are called white space
• White space is used to separate words and symbols in
a program
• Extra white space is ignored
• A valid C# program can be formatted many ways
• Programs should be formatted to enhance readability,
using consistent indentation
CSE 1301
Character Strings
• Object in C#, defined by string class
• String literal is 0 or more characters enclosed
with double quotes
– “The quick brown fox jumped.”
– “x”
– “”
• Can contain any valid character
CSE 1301
Write and WriteLine Methods
Console.Out.WriteLine (“Whatever you are, be a good one.”);
Output device
Monitor
Method name
parameter
Console – class
Out - objects
WriteLine method includes a “new line” character.
CSE 1301
CSE 1301
string Concatenation Operator (+)
• String literals cannot span lines
• Combines string literals with other data types for
printing
Example:
String hello = "Hello";
String there = "there";
String greeting = hello + ' ' + there;
Console.Out.WriteLine( greeting );
Output is:
Hello there
CSE 1301
The + Operator
• What it does depends on the order
– String concatenation
– addition
CSE 1301
string + number = string
CSE 1301
number + number = number
Escape Sequences
To include a special character in a string, use an escape sequence
CSE 1301
CSE 1301
•
Variables
A variable is a name for a location in memory used to hold a
data value.
• A variable must be declared by specifying the variable's
name and the type of information that it will hold
Multiple variables can be created in one declaration
data type
variable name
int total;
int count, temp, result;
CSE 1301
CSE 1301
Conventions
• Names of variables should be meaningful and
reflect the data they will store
– This makes the logic of the program clearer
• Don't skimp on characters, but avoid
extremely long names
• Avoid names similar to C# keywords
CSE 1301
Assignment
• An assignment statement changes the value of a
variable
• The assignment operator is the = sign
total = 55;
• The expression on the right is evaluated and
the result is stored in the variable on the left
• The value that was in total is overwritten
• You can only assign a value to a variable that
is consistent with the variable's declared type
CSE 1301
Assignment Operator
Syntax:
target = expression;
expression: operators and operands that
evaluate to a single value
--value is then assigned to target
--target must be a variable (or constant)
--value must be compatible with target's data
type
CSE 1301
Examples:
int numPlayers = 10; // numPlayers holds 10
numPlayers = 8;
// numPlayers now holds 8
int legalAge = 18;
int voterAge = legalAge;
The next statement is illegal
int height = weight * 2; // weight is not defined
int weight = 20;
CSE 1301
CSE 1301
• Declare a variable only once
• Once a variable is declared, its data type
cannot be changed.
These statements:
double twoCents;
double twoCents = .02;
generate a compiler error
CSE 1301
• Once a variable is declared, its data type
cannot be changed.
These statements:
double cashInHand;
int cashInHand;
generate a compiler error
CSE 1301
Constants
• Value cannot change during program execution
• Syntax:
const dataType constantIdentifier =assignedValue;
Note: assigning a value when the constant is declared is
optional. But a value must be assigned before the
constant is used.
CSE 1301
Constants
• Constants are useful for three important reasons
• First, they give meaning to otherwise unclear literal
values
– For example, MAX_LOAD means more than the literal 250
• Second, they facilitate program maintenance
– If a constant is used in multiple places, its value need only
be updated in one place
• Third, they formally establish that a value should not
change, avoiding inadvertent errors by other
programmers
CSE 1301
Conventions
• Use all capital letters for constants and
separate words with an underscore:
Example:
const double TAX_RATE = .05;
• Declare constants at the top of the program so
their values can easily be seen
• Declare as a constant any data that should not
change during program execution
CSE 1301
Data Types
• For all data, assign a name (identifier) and a
data type
• Data type tells compiler:
– How much memory to allocate
– Format in which to store data
– Types of operations you will perform on data
• Compiler monitors use of data
– C# is a "strongly typed" language
CSE 1301
Primitive Data Types
• 13 simple data types:
– 8 subsets of integers
– 2 subsets of floating point numbers
– Character
– Boolean
– Decimal data type
• Everything else is an object
CSE 1301
CSE 1301
Why so many types?
• Difference is in amount of memory reserved
for each (and hence the size of the value
stored
• float only has 7 significant digits
• Signed numbers have both positive and
negative values
• Unsigned numbers are >= 0
CSE 1301
Literals
• All numeric values without a decimal point are considered
int
• All numeric values with decimal point are considered double
int testGrade = 100;
long cityPopulation = 425612340L;
byte ageInYears = 19;
float salesTax = .05F;
double interestRate = 0.725;
double avogadroNumber = +6.022E23;
CSE 1301
Decimal Data Type
• 128 bit storage
• greater precision and smaller range than other
numeric types
• suitable for financial and monetary
calculations
CSE 1301
char Data Type
• One Unicode character (16 bits - 2 bytes)
Type
char
Size
Minimum Value
in Bytes
2
character
encoded as 0
Maximum Value
character
encoded as FFFF
Example declarations:
char finalGrade = ‘A’;
char newline, tab, doubleQuotes;
CSE 1301
boolean Data Type
• Two values only:
true
false
• Used for decision making or as "flag" variables
• Example declarations:
bool isEmpty;
bool passed, failed = false;
CSE 1301
Download