Izteiksmes ir jebkuras Java programmas būtisks veidojošais bloks, ko parasti izveido, lai iegūtu jaunu vērtību, lai gan dažreiz izteiksme piešķir vērtību mainīgajam. Izteiksmes tiek veidotas, izmantojot vērtības, mainīgie, operatori un metožu zvani.
Atšķirība starp Java paziņojumiem un izteicieniem
Java valodas sintakse izteiksme ir līdzīga a klauzula angļu valodā kas attēlo noteiktu nozīmi. Ar pareiziem pieturzīmēm tas dažreiz var stāvēt uz sava, kaut arī tas var būt arī teikuma sastāvdaļa. Daži izteicieni ir pielīdzināmi apgalvojumiem paši par sevi (beigās pievienojot semikolu), bet biežāk tie veido paziņojuma daļu.
Piemēram,
(a * 2)ir izteiciens.
b + (a * 2);ir paziņojums. Varētu teikt, ka izteiciens ir klauzula, un paziņojums ir pilnīgs teikums, jo tas veido pilnīgu izpildes vienību.
Tomēr paziņojumā nav jāiekļauj vairāki izteicieni. Vienkāršu izteiksmi var pārvērst paziņojumā, pievienojot semikolu:
(a * 2);
Izteiksmes veidi
Lai gan izteiciens bieži rada rezultātu, tas ne vienmēr. Java ir trīs veidu izteicieni:
- Tie, kas rada vērtību, t.i., rezultātu
(1 + 1)
- Piemēram, tie, kas piešķir mainīgo
(v = 10)
- Tie, kuriem nav rezultāta, bet kuriem varētu būt "blakus efekts", jo izteiciens var ietvert plašu tādi elementi kā metožu izsaukumi vai pieauguma operatori, kas modificē a. stāvokli (t.i., atmiņu) programma.
Izteiksmes piemēri
Šeit ir daži dažādu izteicienu veidi.
Izteicieni, kas rada vērtību
Izteiksmes, kas rada vērtību, izmanto plašu Java aritmētisko, salīdzināšanas vai nosacīto operatoru klāstu. Piemēram, aritmētiskie operatori ietver +, *, /, , ++ un%. Daži nosacīti operatori ir?, ||, un salīdzināšanas operatori ir . Skatīt Java specifikācija par pilnu sarakstu.
Šie izteicieni rada vērtību:
3/2
5% 3
pi + (10 * 2)
Ņemiet vērā iekavas pēdējā izteiksmē. Tas vispirms novirza Java, lai aprēķinātu izteiksmes vērtību iekavās (tāpat kā aritmētiku, kuru mācījāties skolā), pēc tam pabeidzot pārējo aprēķinu.
Izteiksmes, kas piešķir mainīgo
Šajā programmā šeit ir daudz izteicienu (parādīti treknā slīprakstā), kas katram piešķir vērtību.
int sekundesDiena = 0;
int
daysInWeek = 7;
int
hoursInDay = 24;
int
minutesInHour = 60;
int
secondsInMinute = 60;
Būla
calcWeek = patiess;
secondsInDay = sekundesInMinute * minutesInHour * hoursInDay; //7
System.out.println (
"Sekunžu skaits dienā ir:" + secondsInDay);
ja (
calcWeek == patiess)
{
System.out.println (
"Sekunžu skaits nedēļā ir:" + secondsInDay * daysInWeek);
}
Izteicieni koda pirmajās sešās rindās visi piešķiršanas operators izmanto vērtību labajā pusē mainīgajam kreisajā pusē.
Rinda, kas apzīmēta ar // 7, ir izteiciens, kas pats par sevi var būt kā paziņojums. Tas arī parāda, ka izteicienus var izveidot, izmantojot vairāk nekā vienu operatoru. Mainīgās sekunžuInDay galīgā vērtība ir kulminācija katras izteiksmes novērtēšanai pēc kārtas (t.i., sekundesMinūtē * minūtesInHour = 3600, kam seko 3600 * stundasInDay = 86400).
Izteiksmes bez rezultāta
Kaut arī daži izteicieni nedod rezultātu, tiem var būt blakus efekts, kas rodas, kad izteiksme maina jebkura tā vērtību operandi.
Piemēram, tiek uzskatīts, ka daži operatori vienmēr rada blakusparādības, piemēram, piešķiršanas, palielināšanas un samazināšanas operatori. Apsveriet šo:
int produkts = a * b;
Vienīgais mainīgais, kas mainīts šajā izteiksmē, ir produkts; a un b netiek mainīti. To sauc par blakusparādību.