Expressions Java 3.1 Primitive data types 3.2 Constants and variables

Slides:



Advertisements
Similar presentations
L2:CSC © Dr. Basheer M. Nasef Lecture #2 By Dr. Basheer M. Nasef.
Advertisements

Types and Arithmetic Operators
Primitive Data Types There are a number of common objects we encounter and are treated specially by almost any programming language These are called basic.
Data Types in Java Data is the information that a program has to work with. Data is of different types. The type of a piece of data tells Java what can.
IntroductionIntroduction  Computer program: an ordered sequence of statements whose objective is to accomplish a task.  Programming: process of planning.
Introduction to Programming with Java, for Beginners Primitive Types Expressions Statements Variables Strings.
Bellevue University CIS 205: Introduction to Programming Using C++ Lecture 3: Primitive Data Types.
1 Chapter 4 Language Fundamentals. 2 Identifiers Program parts such as packages, classes, and class members have names, which are formally known as identifiers.
Aalborg Media Lab 21-Jun-15 Software Design Lecture 2 “ Data and Expressions”
Slides prepared by Rose Williams, Binghamton University Chapter 1 Getting Started 1.2 Expressions and Assignment Statement.
Data types and variables
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL Adrian Ilie COMP 14 Introduction to Programming Adrian Ilie June 27, 2005.
Chapter 2 Data Types, Declarations, and Displays
JavaScript, Third Edition
String Escape Sequences
1 Chapter Two Using Data. 2 Objectives Learn about variable types and how to declare variables Learn how to display variable values Learn about the integral.
Objectives You should be able to describe: Data Types
1 Identifiers  Identifiers are the words a programmer uses in a program  An identifier can be made up of letters, digits, the underscore character (
Java Primitives The Smallest Building Blocks of the Language (corresponds with Chapter 2)
Georgia Institute of Technology Introduction to Java, and DrJava Barb Ericson Georgia Institute of Technology Aug 2005.
DEPARTMENT OF COMPUTER SCIENCE & TECHNOLOGY FACULTY OF SCIENCE & TECHNOLOGY UNIVERSITY OF UWA WELLASSA 1 CST 221 OBJECT ORIENTED PROGRAMMING(OOP) ( 2 CREDITS.
General Features of Java Programming Language Variables and Data Types Operators Expressions Control Flow Statements.
Chapter 3: Data Types and Operators JavaScript - Introductory.
Chapter 2 Basic Elements of Java. Chapter Objectives Become familiar with the basic components of a Java program, including methods, special symbols,
Introduction to Programming David Goldschmidt, Ph.D. Computer Science The College of Saint Rose Java Fundamentals (Comments, Variables, etc.)
Introduction to Java Applications Part II. In this chapter you will learn:  Different data types( Primitive data types).  How to declare variables?
CH2 – Using Data. Constant Something which cannot be changed Data Type Format and size of a data item Intrinsic Data Types Pg. 47 – Table 2-1 Basic ones.
Chapter 2: Using Data.
Hello.java Program Output 1 public class Hello { 2 public static void main( String [] args ) 3 { 4 System.out.println( “Hello!" ); 5 } // end method main.
 JAVA Compilation and Interpretation  JAVA Platform Independence  Building First JAVA Program  Escapes Sequences  Display text with printf  Data.
BUILDING JAVA PROGRAMS CHAPTER 2 PRIMITIVE DATA TYPES AND OPERATIONS.
C++ Programming: Basic Elements of C++.
Java Programming: From Problem Analysis to Program Design, 4e Chapter 2 Basic Elements of Java.
November 1, 2015ICS102: Expressions & Assignment 1 Expressions and Assignment.
Object-Oriented Program Development Using Java: A Class-Centered Approach, Enhanced Edition.
COMPUTER PROGRAMMING. variable What is variable? a portion of memory to store a determined value. Each variable needs an identifier that distinguishes.
Chapter 3—Expressions The Art and Science of An Introduction to Computer Science ERIC S. ROBERTS Java Expressions C H A P T E R 3 “ What ’ s twice eleven?
Operators Precedence - Operators with the highest precedence will be executed first. Page 54 of the book and Appendix B list C's operator precedence. Parenthesis.
SE-1010 Dr. Mark L. Hornick 1 Variables & Datatypes.
PHY-102 SAPVariables and OperatorsSlide 1 Variables and Operators In this section we will learn how about variables in Java and basic operations one can.
Copyright Curt Hill Variables What are they? Why do we need them?
Java Language Basics By Keywords Keywords of Java are given below – abstract continue for new switch assert *** default goto * package.
Programming in Java (COP 2250) Lecture 4 Chengyong Yang Fall, 2005.
Operators and Expressions. 2 String Concatenation  The plus operator (+) is also used for arithmetic addition  The function that the + operator performs.
 In the java programming language, a keyword is one of 50 reserved words which have a predefined meaning in the language; because of this,
Introduction to Java Applications Part II. In this chapter you will learn:  Different data types( Primitive data types).  How to declare variables?
Gator Engineering Copyright © 2008 W. W. Norton & Company. All rights reserved. 1 Chapter 3 Formatted Input/Output.
Expressions Eric Roberts CS 106A January 13, 2016.
Java Basics. Tokens: 1.Keywords int test12 = 10, i; int TEst12 = 20; Int keyword is used to declare integer variables All Key words are lower case java.
ICS102 Lecture 1 : Expressions and Assignment King Fahd University of Petroleum & Minerals College of Computer Science & Engineering Information & Computer.
Programming – Lecture 3 Expressions (Chapter 3) Primitive types Aside: Context Free Grammars Constants, variables Identifiers Variable declarations Arithmetic.
Lecture 3: More Java Basics Michael Hsu CSULA. Recall From Lecture Two  Write a basic program in Java  The process of writing, compiling, and running.
© 2004 Pearson Addison-Wesley. All rights reserved August 27, 2007 Primitive Data Types ComS 207: Programming I (in Java) Iowa State University, FALL 2007.
Chapter 4 Assignment Statement
BASIC ELEMENTS OF A COMPUTER PROGRAM
Simple JavaScript Eric Roberts CS 106J April 10, 2017.
Primitive Data Types August 28, 2006 ComS 207: Programming I (in Java)
Lecture 2: Data Types, Variables, Operators, and Expressions
ITEC113 Algorithms and Programming Techniques
CS180 – Week 1 Lecture 3: Foundation Ismail abumuhfouz.
Multiple variables can be created in one declaration
Assignment and Arithmetic expressions
Variables and Arithmetic Operators in JavaScript
Chapter 3 Assignment Statement
Starting JavaProgramming
Chapter 1: Computer Systems
Expressions and Assignment
Expressions Java 3.1 Primitive data types 3.2 Constants and variables
Primitive Types and Expressions
Chap 2. Identifiers, Keywords, and Types
Presentation transcript:

Expressions Java 3.1 Primitive data types 3.2 Constants and variables The Art and Science of An Introduction to Computer Science ERIC S. ROBERTS Java C H A P T E R 3 Expressions “What’s twice eleven?” I said to Pooh. (“Twice what?” said Pooh to Me.) “I think that it ought to be twenty-two.” “Just what I think myself,” said Pooh. —A. A. Milne, Now We Are Six, 1927 3.1 Primitive data types 3.2 Constants and variables 3.3 Operators and operands 3.4 Assignment statements 3.5 Boolean expressions 3.6 Designing for change Chapter 3—Expressions

Expressions in Java The heart of the Add2Integers program from Chapter 2 is the line int total = n1 + n2; that performs the actual addition. The n1 + n2 that appears to the right of the equal sign is an example of an expression, which specifies the operations involved in the computation. An expression in Java consists of terms joined together by operators. Each term must be one of the following: A constant (such as 3.14159265 or "hello, world") A variable name (such as n1, n2, or total) A method calls that returns a values (such as readInt) An expression enclosed in parentheses

Primitive Data Types Although complex data values are represented using objects, Java defines a set of primitive types to represent simple data. Of the eight primitive types available in Java, the programs in this text use only the following four: int This type is used to represent integers, which are whole numbers such as 17 or –53. double This type is used to represent numbers that include a decimal fraction, such as 3.14159265. In Java, such values are called floating-point numbers; the name double comes from the fact that the representation uses twice the minimum precision. boolean This type represents a logical value (true or false). char This type represents a single character and is described in Chapter 8.

Summary of the Primitive Types A data type is defined by a set of values called the domain and a set of operations. The following table shows the data domains and common operations for all eight of Java’s primitive types: Type Domain Common operations The arithmetic operators: byte 8-bit integers in the range –128 to 127 + add * multiply - subtract / divide short 16-bit integers in the range –32768 to 32767 % remainder 32-bit integers in the range –2146483648 to 2146483647 The relational operators: int = = equal to != not equal 64-bit integers in the range –9223372036754775808 to 9223372036754775807 < less than <= less or equal long > greater than >= greater or equal 32-bit floating-point numbers in the range ± 1.4 x 10-45 to ± 3.4028235 x 10-38 float The arithmetic operators except % 64-bit floating-point numbers in the range ± 4.39 x 10-322 to ± 1.7976931348623157 x 10308 The relational operators double char 16-bit characters encoded using Unicode The relational operators The logical operators: boolean the values true and false && add || or ! not

Constants and Variables The simplest terms that appear in expressions are constants and variables. The value of a constant does not change during the course of a program. A variable is a placeholder for a value that can be updated as the program runs. A variable in Java is most easily envisioned as a box capable of storing a value. The format of a constant depends on its type: Integral constants consist of a string of digits, optionally preceded by a minus sign, as in 0, 42, -1, or 1000000. Floating-point constants include a decimal point, as in 3.14159265 or 10.0. Floating-point constants can also be expressed in scientific notation by adding the letter E and an exponent after the digits of the number, so that 5.646E-8 represents the number 5.646 x 10-8. The two constants of type boolean are true and false. Character and string constants are discussed in detail in Chapter 8. For the moment, all you need to know is that a string constant consists of a sequence of characters enclosed in double quotation marks, such as "hello, world". total 42 (contains an int) Each variable has the following attributes: A name, which enables you to differentiate one variable from another. A type, which specifies what type of value the variable can contain. A value, which represents the current contents of the variable. The name and type of a variable are fixed. The value changes whenever you assign a new value to the variable.

Java Identifiers Names for variables (and other things) are called identifiers. Identifiers in Java conform to the following rules: A variable name must begin with a letter or the underscore character. The remaining characters must be letters, digits, or underscores. The name must not be one of Java’s reserved words: abstract boolean break byte case catch char class const continue default do double else extends false final finally float for goto if implements import instanceof int interface long native new null package private protected public return short static strictfp super switch synchronized this throw throws transient true try void volatile while Identifiers should make their purpose obvious to the reader. Identifiers should adhere to standard conventions. Variable names, for example, should begin with a lowercase letter.

Variable Declarations In Java, you must declare a variable before you can use it. The declaration establishes the name and type of the variable and, in most cases, specifies the initial value as well. type name = value; The most common form of a variable declaration is where type is the name of a Java primitive type or class, name is an identifier that indicates the name of the variable, and value is an expression specifying the initial value. Most declarations appear as statements in the body of a method definition. Variables declared in this way are called local variables and are accessible only inside that method. Variables may also be declared as part of a class. These are called instance variables and are covered in Chapter 6.

Operators and Operands As in most languages, Java programs specify computation in the form of arithmetic expressions that closely resemble expressions in mathematics. The most common operators in Java are the ones that specify arithmetic computation: + Addition – Subtraction * Multiplication / Division % Remainder Operators in Java usually appear between two subexpressions, which are called its operands. Operators that take two operands are called binary operators. The - operator can also appear as a unary operator, as in the expression -x, which denotes the negative of x.

Division and Type Casts Whenever you apply a binary operator to numeric values in Java, the result will be of type int if both operands are of type int, but will be a double if either operand is a double. This rule has important consequences in the case of division. For example, the expression 14 / 5 seems as if it should have the value 2.8, but because both operands are of type int, Java computes an integer result by throwing away the fractional part. The result is therefore 2. If you want to obtain the mathematically correct result, you need to convert at least one operand to a double, as in (double) 14 / 5 The conversion is accomplished by means of a type cast, which consists of a type name in parentheses.

The Pitfalls of Integer Division Consider the following Java statements, which are intended to convert 100˚ Celsius temperature to its Fahrenheit equivalent: double c = 100; double f = 9 / 5 * c + 32; The computation consists of evaluating the following expression: 9 / 5 * c + 32 The problem arises from the fact that both 9 and 5 are of type int, which means that the result is also an int. 1 100 132 9 / 5 * c + 32

The Pitfalls of Integer Division You can fix this problem by converting the fraction to a double, either by inserting decimal points or by using a type cast: double c = 100; double f = (double) 9 / 5 * c + 32; The computation now looks like this: 1.8 180.0 212.0 (double) 9 / 5 * c + 32 9.0

The Remainder Operator The only arithmetic operator that has no direct mathematical counterpart is %, which applies only to integer operands and computes the remainder when the first divided by the second: 14 % 5 returns 4 14 % 7 7 % 14 7 The result of the % operator make intuitive sense only if both operands are positive. The examples in this book do not depend on knowing how % works with negative numbers. The remainder operator turns out to be useful in a surprising number of programming applications and is well worth a bit of study.

Precedence If an expression contains more than one operator, Java uses precedence rules to determine the order of evaluation. The arithmetic operators have the following relative precedence: highest unary - (type cast) * / % + - lowest Thus, Java evaluates unary - operators and type casts first, then the operators *, /, and %, and then the operators + and -. Precedence applies only when two operands compete for the same operator. If the operators are independent, Java evaluates expressions from left to right. Parentheses may be used to change the order of operations.

Exercise: Precedence Evaluation What is the value of the expression at the bottom of the screen? 42 32 32 4 3 30 8 ( 1 + 2 ) % 3 * 4 + 5 * 6 / 7 * ( 8 % 9 ) + 10

Assignment Statements You can change the value of a variable in your program by using an assignment statement, which has the general form: variable = expression; The effect of an assignment statement is to compute the value of the expression on the right side of the equal sign and assign that value to the variable that appears on the left. Thus, the assignment statement total = total + value; adds together the current values of the variables total and value and then stores that sum back in the variable total. When you assign a new value to a variable, the old value of that variable is lost.

Shorthand Assignments Statements such as total = total + value; are so common that Java allows the following shorthand form: total += value; variable op= expression; The general form of a shorthand assignment is where op is any of Java’s binary operators. The effect of this statement is the same as variable = variable op (expression); For example, the following statement multiplies salary by 2. salary *= 2;

Increment and Decrement Operators Another important shorthand form that appears frequently in Java programs is the increment operator, which is most commonly written immediately after a variable, like this: x++; The effect of this statement is to add one to the value of x, which means that this statement is equivalent to x += 1; or in an even longer form x = x + 1; The -- operator (which is called the decrement operator) is similar but subtracts one instead of adding one. The ++ and -- operators are more complicated than shown here, but it makes sense to defer the details until Chapter 11.

Boolean Expressions In many ways, the most important primitive type in Java is boolean, even though it is by far the simplest. The only values in the boolean domain are true and false, but these are exactly the values you need if you want your program to make decisions. The name boolean comes from the English mathematician George Boole who in 1854 wrote a book entitled An Investigation into the Laws of Thought, on Which are Founded the Mathematical Theories of Logic and Probabilities. That book introduced a system of logic that has come to be known as Boolean algebra, which is the foundation for the boolean data type. George Boole (1791-1871)

Boolean Operators The operators used with the boolean data type fall into two categories: relational operators and logical operators. There are six relational operators that compare values of other types and produce a boolean result: = = Equals < Less than != Not equals <= Less than or equal to >= Greater than or equal to > Greater than For example, the expression n <= 10 has the value true if x is less than or equal to 10 and the value false otherwise. p || q means either p or q (or both) There are also three logical operators: && Logical AND || Logical OR ! Logical NOT p && q means both p and q !p means the opposite of p

Notes on the Boolean Operators Remember that Java uses = to denote assignment. To test whether two values are equal, you must use the = = operator. It is not legal in Java to use more than one relational operator in a single comparison as is often done in mathematics. To express the idea embodied in the mathematical expression 0 ≤ x ≤ 9 0 <= x && x <= 9 you need to make both comparisons explicit, as in The || operator means either or both, which is not always clear in the English interpretation of or. Be careful when you combine the ! operator with && and || because the interpretation often differs from informal English.

Short-Circuit Evaluation Java evaluates the && and || operators using a strategy called short-circuit mode in which it evaluates the right operand only if it needs to do so. For example, if n is 0, the right hand operand of && in n != 0 && x % n == 0 is not evaluated at all because n != 0 is false. Because the expression false && anything is always false, the rest of the expression no longer matters. One of the advantages of short-circuit evaluation is that you can use && and || to prevent execution errors. If n were 0 in the earlier example, evaluating x % n would cause a “division by zero” error.

Designing for Change While it is clearly necessary for you to write programs that the compiler can understand, good programmers are equally concerned with writing code that people can understand. The importance of human readability arises from the fact that programs must be maintained over their life cycle. Typically, as much as 90 percent of the programming effort comes after the initial release of a system. There are several useful techniques that you can adopt to increase readability: Use names that clearly express the purpose of variables and methods Use proper indentation to make the structure of your programs clear Use named constants to enhance both readability and maintainability

The End