1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
|
<html>
<head>
<title>
Handbuch der Java-Programmierung, 5. Auflage
</title>
</head>
<body>
<a name="startofbody"></a>
<script language="JavaScript" src="hjp4lib.js">
</script>
<script language="JavaScript">
installKbdHandler("97,#startofbody;101,#endofbody;116,cover.html;122,k100003.html;115,search.html;105,index.html;100,JDKDOCS;112,APIDOCS;104,k100030.html;106,k100035.html;107,k100037.html;108,k100040.html");
</script>
<table border=0 cellpadding=0 cellspacing=1 width="100%">
<tr bgcolor="#EEFFCC">
<td width="7%" align=center bgcolor="#DDCC99"><a href="cover.html"> Titel </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100003.html"> Inhalt </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="search.html"> Suchen </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="index.html"> Index </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="../jdkdocs/index.html" onClick="this.href=getDocIndex()"> DOC </a>
<td align="right">Handbuch der Java-Programmierung, 5. Auflage
<tr bgcolor="#EEFFCC">
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100030.html"> << </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100035.html"> < </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100037.html"> > </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100040.html"> >> </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="../jdkdocs/api/index.html" onClick="this.href=getApiIndex()"> API </a>
<td align="right">Kapitel 5 - Ausdrücke
</table>
<hr>
<!-- Section -->
<a name="sectlevel2id005006"></a>
<h2>5.6 <a name="ixa100360">Zuweisungsoperatoren</a><a name="ixa100361"></a></h2>
<hr>
<ul>
<li><a href="k100036.html#sectlevel2id005006">5.6 Zuweisungsoperatoren</a>
</ul>
<hr>
<p>
Auch die Zuweisungsoperatoren in Java entsprechen im großen
und ganzen den Zuweisungsoperatoren von C und C++. Ebenso gilt die
Zuweisung nicht als <i>Anweisung</i>, sondern als <i>Ausdruck</i>,
der einen Rückgabewert erzeugt.
<p>
<table border=0 cellspacing=0 cellpadding=0 width=100%>
<tr>
<td width=1 align=left valign=top bgcolor="#000077"><img src="trp1_1.gif"></td>
<td><img src="trp1_1.gif" width=2></td>
<td valign=top width=1000>
<p>
Die Verwechslung der relationalen Operatoren <i>Zuweisung</i> und
<i>Gleichheitstest</i> (<font color="#000077"><tt>=</tt></font> und
<font color="#000077"><tt>==</tt></font>) war in C eines der Kardinalprobleme,
in Java kann sie nicht mehr so leicht passieren. Sind beispielsweise
<font color="#000077"><tt>a</tt></font> und <font color="#000077"><tt>b</tt></font>
vom Typ <a href="index_i.html#ixb100244"><font color=#000080><tt>int</tt></font></a>,
so hat zwar der Ausdruck <font color="#000077"><tt>a = b</tt></font>
einen definierten Rückgabewert wie in C. Er darf jedoch nicht
als Kontrollausdruck einer Schleife oder Verzweigung verwendet werden,
da er nicht vom Typ <a href="index_b.html#ixb100072"><font color=#000080><tt>boolean</tt></font></a>
ist. Anders als in C, wo boolesche Werte durch Ganzzahlen simuliert
werden, schließt Java diese Art von Fehler also von vornherein
aus. Nur wenn <font color="#000077"><tt>a</tt></font> und <font color="#000077"><tt>b</tt></font>
vom Typ <a href="index_b.html#ixb100072"><font color=#000080><tt>boolean</tt></font></a>
sind, wird das Verwechseln von Zuweisung und Gleichheitstest vom Compiler
nicht bemerkt.</td>
<td><img src="trp1_1.gif" width=2></td>
<td valign=top>
<table border=0 cellspacing=0 cellpadding=1 width=100% bgcolor="#000077">
<tr>
<td><font color="#FFFFFF"> Hinweis </font></td>
</tr>
</table>
</td>
<td width=1 align=left valign=top bgcolor="#000077"><img src="trp1_1.gif"></td>
</tr>
</table>
<p>
Ebenso wie in C können auch in Java numerische bzw. bitweise
Operatoren mit der Zuweisung kombiniert werden. Der Ausdruck <font color="#000077"><tt>a+=b</tt></font>
addiert <font color="#000077"><tt>b</tt></font> zu <font color="#000077"><tt>a</tt></font>,
speichert das Ergebnis in <font color="#000077"><tt>a</tt></font>
und liefert es ebenfalls als Rückgabewert zurück. <a href="k100036.html#zuweisungsoperatoren">Tabelle 5.5</a>
gibt eine Übersicht der in Java verfügbaren Zuweisungsoperatoren.
<a name="zuweisungsoperatoren"></a>
<p>
<table cols=3 border width=100%>
<tr>
<td valign=top align=left width=33%><b>Operator</b></td>
<td valign=top align=left width=33%><b>Bezeichnung</b></td>
<td valign=top align=left width=33%><b>Bedeutung </b></td></tr>
<tr>
<td valign=top align=left>=</td>
<td valign=top align=left>Einfache Zuweisung</td>
<td valign=top align=left>a = b weist a den Wert von b zu und liefert
b als Rückgabewert. </td></tr>
<tr>
<td valign=top align=left>+=</td>
<td valign=top align=left>Additionszuweisung</td>
<td valign=top align=left>a += b weist a den Wert von a + b zu und
liefert a + b als Rückgabewert. </td></tr>
<tr>
<td valign=top align=left>-=</td>
<td valign=top align=left>Subtraktionszuweisung</td>
<td valign=top align=left>a -= b weist a den Wert von a - b zu und
liefert a - b als Rückgabewert. </td></tr>
<tr>
<td valign=top align=left>*=</td>
<td valign=top align=left>Multiplikationszuweisung</td>
<td valign=top align=left>a *= b weist a den Wert von a * b zu und
liefert a * b als Rückgabewert. </td></tr>
<tr>
<td valign=top align=left>/=</td>
<td valign=top align=left>Divisionszuweisung</td>
<td valign=top align=left>a /= b weist a den Wert von a / b zu und
liefert a / b als Rückgabewert. </td></tr>
<tr>
<td valign=top align=left>%=</td>
<td valign=top align=left>Modulozuweisung</td>
<td valign=top align=left>a %= b weist a den Wert von a % b zu und
liefert a % b als Rückgabewert. </td></tr>
<tr>
<td valign=top align=left>&=</td>
<td valign=top align=left>UND-Zuweisung</td>
<td valign=top align=left>a &= b weist a den Wert von a &
b zu und liefert a & b als Rückgabewert. </td></tr>
<tr>
<td valign=top align=left>|=</td>
<td valign=top align=left>ODER-Zuweisung</td>
<td valign=top align=left>a |= b weist a den Wert von a | b zu und
liefert a | b als Rückgabewert. </td></tr>
<tr>
<td valign=top align=left>^=</td>
<td valign=top align=left>Exklusiv-ODER-Zuweisung</td>
<td valign=top align=left>a ^= b weist a den Wert von a ^ b zu und
liefert a ^ b als Rückgabewert. </td></tr>
<tr>
<td valign=top align=left><<=</td>
<td valign=top align=left>Linksschiebezuweisung</td>
<td valign=top align=left>a <<= b weist a den Wert von a <<
b zu und liefert a << b als Rückgabewert. </td></tr>
<tr>
<td valign=top align=left>>>=</td>
<td valign=top align=left>Rechtsschiebezuweisung</td>
<td valign=top align=left>a >>= b weist a den Wert von a >>
b zu und liefert a >> b als Rückgabewert. </td></tr>
<tr>
<td valign=top align=left>>>>=</td>
<td valign=top align=left>Rechtsschiebezuweisung mit Nullexpansion</td>
<td valign=top align=left>a >>>= b weist a den Wert von a
>>> b zu und liefert a >>> b als Rückgabewert.
</td></tr>
</table>
<p><i>
Tabelle 5.5: Zuweisungsoperatoren </i></p>
<hr>
<table border=0 cellpadding=0 cellspacing=1 width="100%">
<tr bgcolor="#EEFFCC">
<td width="7%" align=center bgcolor="#DDCC99"><a href="cover.html"> Titel </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100003.html"> Inhalt </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="search.html"> Suchen </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="index.html"> Index </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="../jdkdocs/index.html" onClick="this.href=getDocIndex()"> DOC </a>
<td align="right">Handbuch der Java-Programmierung, 5. Auflage, Addison
Wesley, Version 5.0.1
<tr bgcolor="#EEFFCC">
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100030.html"> << </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100035.html"> < </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100037.html"> > </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100040.html"> >> </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="../jdkdocs/api/index.html" onClick="this.href=getApiIndex()"> API </a>
<td align="right">© 1998, 2007 Guido Krüger & Thomas
Stark, <a href="http://www.javabuch.de">http://www.javabuch.de</a>
</table>
<a name="endofbody"></a>
</body>
</html>
|