JavaRush /Blog Jawa /Random-JV /Cabang ing Jawa

Cabang ing Jawa

Diterbitake ing grup
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(utawa if)
  • if-then-else(utawa if-else)
  • switch-case
Cabang ing Jawa - 1

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:
  • Operatorif-then
  • Operatorif-then-else
  • Operator Ternary? :
Ing artikel iki kita bakal katon ing if-elselan operator switch-case.

yen-banjur

Operator if-then, utawa mung ifoperator sing paling umum. Ungkapan "ya, tulis 1 yen" wis dadi populer. Operator ifnduweni struktur ing ngisor iki:
if (bool_condition) {
	statement
}
Ing desain iki:
  • bool_conditionminangka 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)
Konstruksi iki bisa diwaca kaya mangkene:

Если (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 ifmung 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 stringpadha karo null.

yen-banjur-liyane

Yen, ing kahanan normal, ifprogram duwe pilihan: "kanggo nindakake apa-apa utawa ora nindakake apa-apa," banjur nalika if-elsemilih 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_statementminangka 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)
Konstruksi iki bisa diwaca kaya mangkene:

Если (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 < 10bener (tingkat baterei kurang saka 10), program bakal nyithak siji teks. Yen ora, yen kondisi a < 10ora 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 ifdadi 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 printStringSizekanggo 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: ifelsemain

Ошибка! Переданная строка равна null!
Кол-во символов в строке `Не представляю своей жизни без ветвлений...`=43
Ошибка! Переданная строка равна null!
Кол-во символов в строке `Ифы это так захватывающе!`=25
Kahanan bisa ditampa nalika elseora 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
Jumlah kahanan kasebut ora diwatesi. Saben kahanan duwe prentah dhewe:
  • pratelan1
  • pratelan2
  • pratelanN
Saben siji statementbisa 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 kandel ifkanthi 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 switchora 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, statementNminangka prentah sing kudu dieksekusi yen argumentpadha karo salah siji saka value. Contone, yen argumentpadha karo value2, banjur program bakal nglakokaké statement2. defaultlan default_statementminangka "nilai standar". Yen argumentora padha karo apa wae sing disedhiyakake value, cabang kasebut bakal dipicu defaultlan perintah kasebut bakal ditindakake default_statement. defaultlan default_statementminangka 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 breakdiilangi, lan struktur operator switch-casebakal 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 argumentpadha karo value1, bakal dieksekusi statement1. Lan yen argumen padha valueXkaro 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 dayOfWeeknilai SUNDAYsalah siji SATURDAY. Yen ngono, program kasebut nampilake "Dina iki dina libur." Yen ora, banjur priksa manawa nilai variabel padha karo dayOfWeeknilai 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
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION