Ing artikel iki bakal dideleng babagan konsep cabang ing program komputer umume lan sing ditulis ing basa Jawa. Ayo ngobrol babagan struktur kontrol kayata:
if-then
(utawaif
)if-then-else
(utawaif-else
)switch-case
Cabang
Ayo dadi miwiti karo konsep dhasar. Sembarang program minangka sakumpulan perintah sing ditindakake dening komputer. Paling asring, printah dieksekusi kanthi urutan, siji-sijine. Rada kurang asring (nanging isih cukup asring) kahanan njedhul nalika sampeyan kudu ngganti urutan urutan printah program. Kadhangkala, gumantung ing kahanan tartamtu, bisa uga kudu nglakokake siji blok perintah tinimbang liyane. Lan nalika kahanan iki ganti, tindakake ngelawan. Contone, ana sawetara situs sing dilarang kanggo ngunjungi wong sing umure kurang saka 18 taun. Biasane, nalika ngunjungi sumber kasebut kanggo pisanan, pangguna disambut karo sawetara formulir sing pangguna dielingake babagan watesan umur lan dijaluk ngetik tanggal lair. Banjur, gumantung saka data sing dilebokake pangguna, dheweke bakal diidini ngetik sumber daya utawa ora. Fungsi iki diwenehake dening sing biasa disebut branching. Ayo menehi analogi liyane. Coba bayangake awake dhewe ana ing prapatan dalan pitu. Kita ngadhepi pilihan: belok ngiwa utawa nengen, utawa langsung. Pilihan kita adhedhasar kahanan tartamtu. Kita uga ora duwe kesempatan kanggo njupuk sawetara dalan bebarengan. Sing. gumantung ing sawetara kahanan, kita kudu milih siji dalan. Prinsip sing padha ditrapake kanggo cabang. Saiki ayo nyoba menehi definisi babagan cabang. Branching minangka konstruksi algoritma sing, gumantung saka bebener saka sawetara kondisi, salah siji saka sawetara urutan tumindak ditindakake. Branching dileksanakake (paling kamungkinan) ing pancen kabeh basa program. Basa pemrograman Java duwe sawetara sing diarani konstruksi kontrol sing ngidini sampeyan ngetrapake cabang ing program sampeyan. Ana 3 konstruksi kasebut ing basa pamrograman:- Operator
if-then
- Operator
if-then-else
- Operator Ternary
? :
if-else
lan operator switch-case
.
yen-banjur
Operatorif-then
, utawa mung if
operator sing paling umum. Ungkapan "ya, tulis 1 yen" wis dadi populer. Operator if
nduweni struktur ing ngisor iki:
if (bool_condition) {
statement
}
Ing desain iki:
bool_condition
minangka ekspresi boolean sing ngevaluasi bener utawa salah. Ungkapan iki diarani kondisi.statement
- prentah (bisa uga ana luwih saka siji) sing kudu ditindakake yen kondisi kasebut bener (bool_statement==true
)
Если (bool_condition), то {statement}
Ing ngisor iki sawetara conto:
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("Сколько процентов заряда батареи осталось на вашем смартфоне?");
int a = scanner.nextInt();
if (a < 10) {
System.out.println("Осталось менее 10 процентов, подключите ваш смартфон к зарядному устройству");
}
}
Ing program iki, pangguna dijaluk ngetik persentase pangisian daya baterei ing smartphone. Yen kurang saka 10 persen pangisian daya tetep, program kasebut bakal ngelingake pangguna babagan kudu ngisi daya smartphone. Iki minangka conto desain sing paling gampang if
. Wigati dicathet yen variabel `a` luwih gedhe tinimbang utawa padha karo 10, mula ora ana sing bakal kedadeyan. Program bakal terus ngeksekusi kode sing ngetutake if
. Elinga yen ing kasus iki, konstruksi if
mung duwe siji urutan tumindak sing kudu ditindakake: nyetak teks, utawa ora nindakake apa-apa. Iki minangka variasi saka cabang kanthi siji "cabang". Iki kadhangkala perlu. Contone, nalika kita pengin nglindhungi awake dhewe saka nilai sing salah. Contone, kita ora bisa ngerteni jumlah huruf ing senar yen senar kasebut null
. Tuladha ing ngisor iki:
public static void main(String[] args) {
String x = null;
printStringSize(x);
printStringSize("Не представляю своей жизни без ветвлений...");
printStringSize(null);
printStringSize("Ифы это так захватывающе!");
}
static void printStringSize(String string) {
if (string != null) {
System.out.println("Кол-во символов в строке `" + string + "`=" + string.length());
}
}
Minangka asil saka nglakokaké cara utama, ing ngisor iki bakal output kanggo console:
Количество символов в строке `Не представляю своей жизни без ветвлений...`=43
Количество символов в строке `Ифы это так захватывающе!`=25
Thanks kanggo mriksa sing string != null
, kita bisa ngindhari kasalahan ing program. Lan ora nindakake apa-apa ing kasus sing variabel string
padha karo null
.
yen-banjur-liyane
Yen, ing kahanan normal,if
program duwe pilihan: "kanggo nindakake apa-apa utawa ora nindakake apa-apa," banjur nalika if-else
milih program bakal dadi "nindakake siji utawa liyane." Opsi "apa-apa" ilang. Ana rong utawa luwih varian eksekusi (utawa jumlah cabang) kanthi jinis percabangan iki. Ayo dipikirake yen ana rong pilihan. Banjur struktur kontrol duwe wangun ing ngisor iki:
if (bool_condition) {
statement1
} else {
statement2
}
kene:
bool_statement
minangka ekspresi boolean sing ngevaluasi bener utawa salah. Ungkapan iki diarani kondisi.statement1
- prentah (bisa uga ana luwih saka siji) sing kudu ditindakake yen kondisi kasebut bener (bool_statement==true
)statement2
- prentah (bisa uga ana luwih saka siji) sing kudu ditindakake yen kondisi kasebut salah (bool_statement==false
)
Если (bool_condition), то {statement1}
Иначе {statement2}
Iki contone:
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("Сколько процентов заряда батареи осталось на вашем смартфоне?");
int a = scanner.nextInt();
if (a < 10) {
System.out.println("Осталось менее 10 процентов, подключите ваш смартфон к зарядному устройству");
} else {
System.out.println("Заряда вашей батареи достаточно для того, чтобы прочитать статью на Javarush");
}
}
Conto sing padha babagan level baterei ing smartphone. Mung yen pungkasan program mung dielingake babagan kudu ngisi smartphone, wektu iki kita duwe kabar tambahan. Ayo ndeleng iki if
:
if (a < 10) {
System.out.println("Осталось менее 10 процентов, подключите ваш смартфон к зарядному устройству");
} else {
System.out.println("Заряда вашей батареи достаточно для того, чтобы прочитать статью на Javarush");
}
Yen a < 10
bener (tingkat baterei kurang saka 10), program bakal nyithak siji teks. Yen ora, yen kondisi a < 10
ora ketemu, program bakal output teks temen beda. Ayo uga ngrampungake conto nomer loro, sing nuduhake jumlah huruf ing baris. Pungkasan, program kasebut ora ngasilake apa-apa yen senar sing dilewati padha karo null
. Ayo ndandani iki kanthi ngowahi sing normal if
dadi if-else
:
public static void main(String[] args) {
String x = null;
printStringSize(x);
printStringSize("Не представляю своей жизни без ветвлений...");
printStringSize(null);
printStringSize("Ифы это так захватывающе!");
}
static void printStringSize(String string) {
if (string != null) {
System.out.println("Кол-во символов в строке `" + string + "`=" + string.length());
} else {
System.out.println("Ошибка! Переданная строка равна null!");
}
}
Ing metode kasebut , kita nambahake blok printStringSize
kanggo konstruksi . Saiki, yen kita mbukak program, iku bakal output kanggo console ora 2 baris, nanging 4, sanajan input (metode ) tetep padha pungkasan. Teks sing program bakal output: if
else
main
Ошибка! Переданная строка равна null!
Кол-во символов в строке `Не представляю своей жизни без ветвлений...`=43
Ошибка! Переданная строка равна null!
Кол-во символов в строке `Ифы это так захватывающе!`=25
Kahanan bisa ditampa nalika else
ora dituruti dening perintah eksekusi, nanging dening liyane if
. Banjur konstruksi njupuk formulir ing ngisor iki:
If (bool_condition1) {
statement1
} else if (bool_condition2) {
statement2
} else if (bool_conditionN) {
statementN
} else {
statementN+1
}
Desain iki nduweni sawetara syarat:
- kahanan_bool1
- kahanan_bool2
- bool_conditionN
- pratelan1
- pratelan2
- pratelanN
statement
bisa ngemot 1 utawa luwih baris kode. Syarate dicek siji-siji. Sawise kondisi bener pisanan ditemtokake, seri printah "diikat" kanggo kondisi bener bakal kaleksanan. Sawise nglakokake prentah kasebut, program bakal metu saka blok kasebut if
, sanajan ana pemeriksaan liyane ing ngarep. Ekspresi "statementN + 1" bakal dieksekusi yen ora ana kondisi sing ditemtokake ing ndhuwur sing bener. Konstruksi iki bisa diwaca kaya mangkene:
Если (bool_condition1) то {statement1}
Иначе если (bool_condition2) то {statement2}
Иначе если (bool_conditionN) то {statementN}
Иначе {statementN+1}
Baris pungkasan ing kasus iki opsional. Sampeyan bisa nindakake tanpa sing pungkasan sepi else
. Lan banjur desain bakal njupuk formulir ing ngisor iki:
If (bool_condition1) {
statement1
} else if (bool_condition2) {
statement2
} else if (bool_conditionN) {
statementN
}
Lan bakal maca kaya iki:
Если (bool_condition1) то {statement1}
Иначе если (bool_condition2) то {statement2}
Иначе если (bool_conditionN) то {statementN}
Dadi, yen ora ana syarat sing bener, mula ora ana prentah sing bakal ditindakake. Ayo dadi pindhah menyang conto. Ayo bali menyang kahanan kanthi tingkat pangisian daya ing smartphone. Ayo nulis program sing bakal ngandhani pemilik kanthi luwih rinci babagan tingkat pangisian daya piranti kasebut:
public static void main(String[] args) {
String alert5 = "Я скоро отключусь, но помни меня бодрым";
String alert10 = "Я так скучаю по напряжению в моих жилах";
String alert20 = "Пора вспоминать, где лежит зарядка";
String alert30 = "Псс, пришло время экономить";
String alert50 = "Хм, больше половины израсходовали";
String alert75 = "Всё в порядке, заряда больше половины";
String alert100 = "Я готов к приключениям, если что..";
String illegalValue = "Такс, кто-то ввел некорректное meaning";
Scanner scanner = new Scanner(System.in);
System.out.print("Сколько процентов заряда батареи осталось на вашем смартфоне?");
int a = scanner.nextInt();
if (a <= 0 || a > 100) {
System.out.println(illegalValue);
} else if (a < 5) {
System.out.println(alert5);
} else if (a < 10) {
System.out.println(alert10);
} else if (a < 20) {
System.out.println(alert20);
} else if (a < 30) {
System.out.println(alert30);
} else if (a < 50) {
System.out.println(alert50);
} else if (a < 75) {
System.out.println(alert75);
} else if (a <= 100) {
System.out.println(alert100);
}
}
Contone, ing kasus iki, yen pangguna mlebu 15, program bakal ditampilake ing layar: "Iki wektu kanggo ngelingi ing ngendi pangisi daya." Senadyan kasunyatan sing 15 kurang lan 30 lan 50 lan 75 lan 100, output ing layar bakal mung 1. Ayo kita nulis aplikasi liyane sing bakal print kanggo console apa dina minggu iku:
public static void main(String[] args) {
// Определим текущий день недели
DayOfWeek dayOfWeek = LocalDate.now().getDayOfWeek();
if (dayOfWeek == DayOfWeek.SUNDAY) {
System.out.println("Сегодня воскресенье");
} else if (dayOfWeek == DayOfWeek.MONDAY) {
System.out.println("Сегодня понедельник");
} else if (dayOfWeek == DayOfWeek.TUESDAY) {
System.out.println("Сегодня вторник");
} else if (dayOfWeek == DayOfWeek.WEDNESDAY) {
System.out.println("Сегодня среда");
} else if (dayOfWeek == DayOfWeek.THURSDAY) {
System.out.println("Сегодня четверг");
} else if (dayOfWeek == DayOfWeek.FRIDAY) {
System.out.println("Сегодня пятница");
} else if (dayOfWeek == DayOfWeek.SATURDAY) {
System.out.println("Сегодня суббота");
}
}
Iku trep, mesthi, nanging turah mbrawah saka teks monoton dazzles mata sethitik. Ing kahanan sing duwe akeh pilihan, luwih becik nggunakake operator, sing bakal dibahas ing ngisor iki.
ngalih-kasus
Alternatif kanggo kandelif
kanthi akeh cabang yaiku operator switch-case
. Operator iki kayane ujar "Dadi, kita duwe variabel iki. Delengen, yen nilaine padha karo `x`, banjur kita nindakake iki lan sing, yen nilaine padha karo `y`, banjur kita nindakake iku beda, lan yen ora padha karo samubarang ing ndhuwur, kita mung nindakake. kaya iki ... ” Operator iki nduweni struktur ing ngisor iki.
switch (argument) {
case value1:
statement1;
break;
case value2:
statement2;
break;
case valueN:
statementN;
break;
default:
default_statement;
break;
}
Ayo ndeleng struktur iki kanthi luwih rinci. argument
punika variabel kang Nilai kita bakal mbandhingaké karo hypothetical opsi beda. Variabel kudu final
. Sampeyan uga kudu ujar manawa operator switch
ora ndhukung jinis data minangka argumen. Jinis sing bener kapacak ing ngisor iki:
- byte lan Byte
- cendhak lan cendhak
- int lan Integer
- char lan Karakter
- enum
- String
case value1 (value2, valueN)
- iki minangka nilai, konstanta tartamtu sing mbandhingake nilai variabel argument
. Uga, saben kasus nemtokake sakumpulan prentah sing kudu ditindakake. statement1
, statement2
, statementN
minangka prentah sing kudu dieksekusi yen argument
padha karo salah siji saka value
. Contone, yen argument
padha karo value2
, banjur program bakal nglakokaké statement2
. default
lan default_statement
minangka "nilai standar". Yen argument
ora padha karo apa wae sing disedhiyakake value
, cabang kasebut bakal dipicu default
lan perintah kasebut bakal ditindakake default_statement
. default
lan default_statement
minangka atribut opsional saka operator switch-case
. break
— sampeyan bisa sok dong mirsani sing ing mburi saben pamblokiran cilik ana statement break
. Operator iki uga opsional lan serves kanggo mbedakake kode kasus beda. Kadhangkala perlu kanggo nindakake tumindak sing padha ing kasus sing beda-beda: banjur kasus kasebut bisa digabung. Ing kasus iki, tembung kunci break
diilangi, lan struktur operator switch-case
bakal katon kaya iki:
switch (argument) {
case value1:
statement1;
break;
case valueX:
case valueY:
statementXY;
break;
}
Perlu dicathet yen ora ana operator ing antarane `case valueX:` lan `case valueY:` break
. Ing kene, yen argument
padha karo value1
, bakal dieksekusi statement1
. Lan yen argumen padha valueX
karo salah siji valueY
, statementXY
. Ayo diencerake teori sing angel dimangerteni dadi praktik sing gampang dingerteni. Ayo nulis ulang conto karo dina minggu nggunakake operator switch-case
.
public static void main(String[] args) {
// Определим текущий день недели
DayOfWeek dayOfWeek = LocalDate.now().getDayOfWeek();
switch (dayOfWeek) {
case SUNDAY:
System.out.println("Сегодня воскресенье");
break;
case MONDAY:
System.out.println("Сегодня понедельник");
break;
case TUESDAY:
System.out.println("Сегодня вторник");
break;
case WEDNESDAY:
System.out.println("Сегодня среда");
break;
case THURSDAY:
System.out.println("Сегодня четверг");
break;
case FRIDAY:
System.out.println("Сегодня пятница");
break;
case SATURDAY:
System.out.println("Сегодня суббота");
break;
}
}
Saiki ayo nulis program sing nuduhake manawa dina iki dina minggu utawa akhir minggu nggunakake operator switch-case
.
public static void main(String[] args) {
// Определим текущий день недели
DayOfWeek dayOfWeek = LocalDate.now().getDayOfWeek();
switch (dayOfWeek) {
case SUNDAY:
case SATURDAY:
System.out.println("Сегодня выходной");
break;
case FRIDAY:
System.out.println("Завтра выходной");
break;
default:
System.out.println("Сегодня рабочий день");
break;
}
}
Ayo kula nerangake sethitik. Ing program iki kita njaluk enum DayOfWeek
, kang nuduhake dina saiki minggu. Sabanjure, kita ndeleng manawa nilai variabel kita padha karo dayOfWeek
nilai SUNDAY
salah siji SATURDAY
. Yen ngono, program kasebut nampilake "Dina iki dina libur." Yen ora, banjur priksa manawa nilai variabel padha karo dayOfWeek
nilai FRIDAY
. Yen ngono, program kasebut nampilake "Sesuk dina libur." Yen ing kasus iki ora ana, mula kita duwe sawetara pilihan, dina sing isih ana yaiku dina kerja, mula kanthi standar, yen dina iki dudu dina Jumuah, dudu dina Sabtu lan dudu Minggu, program kasebut bakal nampilake "Dina iki dina kerja."
Kesimpulan
Dadi, ing artikel iki kita ndeleng apa cabang ing program komputer. Kita uga ngerteni struktur kontrol apa sing digunakake kanggo ngetrapake cabang ing Jawa. Kita ngrembug desain kayata:if-then
if-then-else
switch-case
GO TO FULL VERSION