Første |
|
Java basis serie, Planche nr. 32 |
![]() |
Udskrift af : Java basis |
Det er opbygget af sætninger og blokke.
Sætninger afsluttes af med ';' (Semikolon)
Blokke begynder med '{' og slutter med '}'
En blok indeholder kun sætninger.
En sætning kan være tom
Alle mellemrum, tab og nylinie behandles ens ("whitespace")
To former:
Type | Size/Format | Description |
---|---|---|
(integers) | ||
byte | 8-bit two's complement | Byte-length integer |
short | 16-bit two's complement | Short integer |
int | 32-bit two's complement | Integer |
long | 64-bit two's complement | Long integer |
(real numbers) | ||
float | 32-bit IEEE 754 | Single-precision floating point |
double | 64-bit IEEE 754 | Double-precision floating point |
(other types) | ||
char | 16-bit Unicode character | A single character |
boolean | true or false | A boolean value
(true or false ) |
java.awt.Button afslutteKnap;
java.lang.String tekst = "Dette er en tekst";
Operator | Use | Description |
---|---|---|
+ |
op1 + op2 |
Adds op1 and op2 |
- |
op1 - op2 |
Subtracts op2 from op1 |
* |
op1 * op2 |
Multiplies op1 by op2 |
/ |
op1 / op2 |
Divides op1 by op2 |
% |
op1 % op2 |
Computes the remainder of dividing op1 by op2 |
Operator | Use | Description |
---|---|---|
+
|
+op
|
Promotes + to int
if it's a byte , short , or
char
|
-
|
-op
|
Arithmetically negates op
|
Operator | Use | Description |
---|---|---|
++
|
op++
|
Increments op by 1; evaluates to value before
incrementing
|
++
|
++op
|
Increments op by 1; evaluates to value after
incrementing
|
--
|
op--
|
Decrements op by 1; evaluates to value before
decrementing
|
--
|
--op
|
Decrements op by 1; evaluates to value after
decrementing
|
Operator | Use | Return true if |
---|---|---|
>
|
op1 > op2
|
op1 is greater than op2
|
>=
|
op1 >= op2
|
op1 is greater than or equal to op2
|
<
|
op1 < op2
|
op1 is less than op2
|
<=
|
op1 <= op2
|
op1 is less than or equal to op2
|
==
|
op1 == op2
|
op1 and op2 are equal
|
!=
|
op1 != op2
|
op1 and op2 are not equal
|
Java fælde: boolean test = false; if (test = true) System.err.println("Test er sand"); else System.err.println("Test er ikke sand"); Giver altid 'Test er sand' - hvorfor?
Operator | Use | Returns true if |
---|---|---|
&&
|
op1 && op2
|
op1 and op2 are both
true ,
conditionally evaluates op2
|
||
|
op1 || op2
|
either op1 or op2 is
true ,
conditionally evaluates op2
|
!
|
! op
|
op is false
|
&
|
op1 & op2
|
op1 and op2 are both
true ,
always evaluates op1 and op2
|
|
|
op1 | op2
|
either op1 or op2 is
true ,
always evaluates op1 and op2
|
Operator | Use | Operation |
---|---|---|
>>
|
op1 >> op2
|
shift bits of op1 right by distance
op2
|
<<
|
op1 << op2
|
shift bits of op1 left by distance op2
|
>>>
|
op1 >>> op2
|
shift bits of op1 right by distance
op2 (unsigned)
|
&
|
op1 & op2
|
bitwise and
|
|
|
op1 | op2
|
bitwise or
|
^
|
op1 ^ op2
|
bitwise xor
|
~
|
~op2
|
bitwise complement |
Operator | Use | Equivalent to |
---|---|---|
+=
|
op1 += op2
|
op1 = op1 + op2
|
-=
|
op1 -= op2
|
op1 = op1 - op2
|
*=
|
op1 *= op2
|
op1 = op1 * op2
|
/=
|
op1 /= op2
|
op1 = op1 / op2
|
%=
|
op1 %= op2
|
op1 = op1 % op2
|
&=
|
op1 &= op2
|
op1 = op1 & op2
|
|=
|
op1 |= op2
|
op1 = op1 | op2
|
^=
|
op1 ^= op2
|
op1 = op1 ^ op2
|
<<=
|
op1 <<= op2
|
op1 = op1 << op2
|
>>=
|
op1 >>= op2
|
op1 = op1 >> op2
|
>>>=
|
op1 >>>= op2
|
op1 = op1 >>> op2
|
postfix operators | [] . (params)
expr++ expr-- |
unary operators | ++expr
--expr +expr -expr ~ ! |
creation or cast | new
(type)expr |
multiplicative | * / % |
additive | + - |
shift | << >> >>> |
relational | < > <= >=
instanceof |
equality | == != |
bitwise AND | & |
bitwise exclusive OR | ^ |
bitwise inclusive OR | | |
logical AND | && |
logical OR | || |
conditional | ? : |
assignment | = += -= *= /= %= &= ^= |= <<=
>>= >>>= |
import java.io.*; public class Count { public static void countChars(Reader in) throws IOException { int count = 0; while (in.read() != -1) count++; System.out.println("Counted " + count + " chars."); } // ... Hovedmetode udeladt ... }
Statement | Keyword |
---|---|
decision making |
if-else , switch-case
|
loop |
for , while , do-while
|
exception |
try-catch-finally , throw
|
miscellaneous |
break , continue , label: ,
return
|
Definition if (expression) statement Eksempel if (DEBUG) System.out.println ("DEBUG: x = " + x);DEBUG er en bool-variabel og x en variabel, der kan udskrives.
Definition if (expression) statement else statement
. . . // response er enten OK eller CANCEL afhaengig // af, hvilken knap, der er trykket ned . . . if (response == OK) { . . . // kode for OK aktion . . . } else { . . . // kode for Cancel aktion . . . }
Flere betingelser kan kaedes sammen:
int testscore; char grade; if (testscore >= 90) { grade = 'A'; } else if (testscore >= 80) { grade = 'B'; } else if (testscore >= 70) { grade = 'C'; } else if (testscore >= 60) { grade = 'D'; } else { grade = 'F'; }
int month; . . . switch (month) { case 1: System.out.println("January"); break; case 2: System.out.println("February"); break; case 3: System.out.println("March"); break; case 4: System.out.println("April"); break; case 5: System.out.println("May"); break; case 6: System.out.println("June"); break; case 7: System.out.println("July"); break; case 8: System.out.println("August"); break; case 9: System.out.println("September"); break; case 10: System.out.println("October"); break; case 11: System.out.println("November"); break; case 12: System.out.println("December"); break; default: System.out.println("None of the above"); break; }
Svarer til
int month; . . . if (month == 1) { System.out.println("January"); } else if (month == 2) { System.out.println("February"); . . . // you get the idea . . .
'break' afbryder en given case-aktion
'default:' tildeler en aktion til "alt andet".
for (initialization; termination; increment) statements
do { statements } while (booleanExpression);
navn: { Nogle udtryk break navn; Udtryk der ikke udføres }
public int indexOf(String str, int fromIndex) { char[] v1 = value; char[] v2 = str.value; int max = offset + (count - str.count); test: for (int i = offset + ((fromIndex < 0) ? 0 : fromIndex); i <= max ; i++) { int n = str.count; int j = i; int k = str.offset; while (n-- != 0) { if (v1[j++] != v2[k++]) { continue test; } } return i - offset; } return -1; }Hvis continue-strukturen udføres, startes forfra med næste værdi af i.
byte navn [] = { "L", "e", "i", "f" };
byte tomtNavn [] = new byte [10];
kan også skrives enklere:
String text = "Tekst" ;
String svar = "Ok" ; if (svar == "Ok") { System.err.println("Tekst er Ok"); } else { System.err.println("Tekst er IKKE Ok"); }Denne kodestump giver "Tekst er IKKE Ok". Hvorfor?