Премини към съдържанието
AntoniqDimitrova

Условната конструкция switch-case

Препоръчан отговор


Имаме две маймуни a и b и дадени параметри aSmile и bSmile, които показват дали някоя от двете маймуни се усмихва.

Загазили сме, ако и двете се усмихват едновременно или нито една от двете не се усмихва.

Напишете програма, която показва дали сме загазили или не.

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

обект maymunaA smile=0
обект maymunaB smile=0

обект nachalnik 
CREATE: usmivka=0; ujas=0
usmivka=maymunaA.smile
switch (usmivka)
{
	case maymunaB.smile: ujas=1; break;
	default: ujas=0
}

Понеже не пише на кой език, та го написах на единствения компутурен език, който знам. Има 3 обекта (наименованието е объркващо де), като началникът следи за двете маймуни, всяка от които е с обявена стойност за смиле=0. За други езици освен гамемакер лангуадже вероятно ще има доста разлика :)

Това е само при стартирането, ако трябва да се проверява непрекъснато, кодът е практически същият, с някои допълнения.

Редактирано от otark (преглед на промените)

Сподели този отговор


Линк към този отговор
Сподели в други сайтове
преди 3 часа, AntoniqDimitrova написа:

Имаме две маймуни a и b и дадени параметри aSmile и bSmile, които показват дали някоя от двете маймуни се усмихва.

Загазили сме, ако и двете се усмихват едновременно или нито една от двете не се усмихва.

Напишете програма, която показва дали сме загазили или не.

Здравейте !

Моля, прочетете следната статия

Решението на задачата се свежда до 1 ред:

public void weAreInTrouble(boolean aSmile, boolean bSmile) {
	return !(aSmile ^ bSmile);
}

Ето и пълния вариант на класа

public class Monkeys {
    public static void main(String args[]) {
        System.out.println(trouble(true, false));
    }
    
    public static boolean trouble(boolean a, boolean b) {
        return !(a ^ b);
    }
}

Може да се добавят разни изчитания от конзола и т.н.

Поздрави !


Сподели този отговор


Линк към този отговор
Сподели в други сайтове
преди 3 часа, soundtracker написа:

Здравейте !

Моля, прочетете следната статия

Решението на задачата се свежда до 1 ред:


public void weAreInTrouble(boolean aSmile, boolean bSmile) {
	return !(aSmile ^ bSmile);
}

Ето и пълния вариант на класа


public class Monkeys {
    public static void main(String args[]) {
        System.out.println(trouble(true, false));
    }
    
    public static boolean trouble(boolean a, boolean b) {
        return !(a ^ b);
    }
}

Може да се добавят разни изчитания от конзола и т.н.

Поздрави !

обаче трябва да е с конструкцията switch-case

Сподели този отговор


Линк към този отговор
Сподели в други сайтове
преди 6 часа, AntoniqDimitrova написа:

обаче трябва да е с конструкцията switch-case

Така, прочетете тази секция от JLS (Java Language Specification) 

Цитат

SwitchStatement:
    switch ( Expression ) SwitchBlock

Цитат

The type of the Expression must be char, byte, short, int, Character, Byte, Short, Integer, String, or an enum type (§8.9), or a compile-time error occurs.

Т.е. switch не може да приеме boolean стойност.

А защо няма и смисъл, това мнение обяснява доста добре.

Поради това, ако все още се държи да се напише задачат със switch, тогава типовете на aSmile и bSmile трябва да са други ( char, byte, short, int, Character, Byte, Short, Integer, String, or an enum type)

P.S. Тази задача от кого Ви е зададена между другото ?! Ако е от преподавател, поискайте допълнително разяснение какви трябва да са типовете на aSmile и bSmile, че да има резон да се използва switch оператора.

Поздрави !

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Регистрирайте се или влезете в профила си за да коментирате

Трябва да имате регистрация за да може да коментирате това

Регистрирайте се

Създайте нова регистрация в нашия форум. Лесно е!

Нова регистрация

Вход

Имате регистрация? Влезте от тук.

Вход

×

Информация

Поставихме бисквитки на устройството ви за най-добро потребителско изживяване. Можете да промените настройките си за бисквитки, или в противен случай приемаме, че сте съгласни с нашите условия за ползване.