1.Использование условных операторов в Arduino
void loop() {
int number = 5; // загаданное число
int guess; // предположение игрока
// Получаем предположение от игрока
guess = Serial.parseInt();
// Проверяем предположение
if (guess < 0 || guess > 9) {
Serial.println("Число должно быть от 0 до 9!");
} else if (guess < number) {
Serial.println("Меньше! Попробуйте еще раз");
} else if (guess > number) {
Serial.println("Больше! Попробуйте еще раз");
} else {
Serial.println("Поздравляем! Вы угадали число!");
}
} Разбор кода:
2. Использование switch-case
void loop() {
int number = 5; // загаданное число
int guess; // предположение игрока
guess = Serial.parseInt();
switch (guess) {
case 0 ... 4:
Serial.println("Меньше! Попробуйте еще раз");
break;
case 6 ... 9:
Serial.println("Больше! Попробуйте еще раз");
break;
case number:
Serial.println("Поздравляем! Вы угадали число!");
break;
default:
Serial.println("Число должно быть от 0 до 9!");
break;
}
} Сравнение методов
Преимущества else if:
Работает с любыми типами данных
Более гибкий в использовании
Проще для понимания начинающих
Преимущества switch-case:
Более компактный код для простых проверок
Быстрее выполняется для целочисленных значений
Удобен при проверке конкретных значений
int score = 85;
// С else if
if (score >= 90) {
Serial.println("Отлично!");
} else if (score >= 75) {
Serial.println("Хорошо");
} else if (score >= 60) {
Serial.println("Удовлетворительно");
} else {
Serial.println("Неудовлетворительно");
}
// С switch-case (упрощенный вариант)
switch (score / 10) {
case 9:
case 10:
Serial.println("Отлично!");
break;
case 7:
case 8:
Serial.println("Хорошо");
break;
case 6:
Serial.println("Удовлетворительно");
break;
default:
Serial.println("Неудовлетворительно");
break;
}
пример выбора выставляемой оценки
if (a == b) { // true, если a равно b
// код
}
if (a != b) { // true, если a не равно b
// код
}
if (a > b) { // true, если a больше b
// код
}
if (a < b) { // true, если a меньше b
// код
}
if (a >= b) { // true, если a больше или равно b
// код
}
if (a <= b) { // true, если a меньше или равно b
// код
}
if (a > 0 && b < 10) { // true, если оба условия верны
// код
}
if (a == 0 || b == 0) { // true, если хотя бы одно условие верно
// код
}
if (!digitalRead(pin)) { // true, если значение false
// код
}
int value = 7;
if (value >= 0 && value <= 10) {
Serial.println("Число в диапазоне");
}
int buttonState = digitalRead(pin);
if (buttonState == HIGH || buttonState == LOW) {
Serial.println("Кнопка нажата или отпущена");
}
bool flag = false;
if (!flag) {
Serial.println("Флаг не установлен");
}
int sensorValue = analogRead(A0);
if (sensorValue > 500 && sensorValue < 1000) {
// значение в допустимом диапазоне
}
else if (sensorValue <= 500 || sensorValue >= 1000) {
// значение вне диапазона
}
else {
// ошибка
}
!)==, !=, >, <, >=, <=)&&)||){} даже для однострочных условий
if ((a > 0 && a < 10) || (b == 5 && c != 0)) {
// безопасный код
}
ЗАДАНИЕ
разбор 21.10
сдача кода 28.10
Написать код программы: "угадай число от 0 до 9" один код на бригаду.Алгоритм