Работа с флагами в Kotlin
Флаг - это переменная с логическим типом, которая хранит ответ «да» или «нет» на вопрос задачи. Так проверяют, выполняется ли условие для всех значений: нет ли в строке запрещенного символа, все ли числа в диапазоне положительные.
Перед циклом флагу задают начальное значение.
Оно отражает предположение до проверки: часто
это true, если нужно убедиться, что
нарушений нет. Внутри цикла при первом
нарушении флаг меняют на false.
Проверим, что все числа от 1 до 5
положительные. На экран попадет true:
var isAllPositive = true
for (num in 1..5) {
if (num <= 0) {
isAllPositive = false
}
}
println(isAllPositive)
Имя флага лучше выбирать по смыслу условия.
Если в диапазон попадает отрицательное число,
на экран попадет false:
var isAllPositive = true
for (num in -2..3) {
if (num <= 0) {
isAllPositive = false
}
}
println(isAllPositive)
Результат проверки читают после цикла: там
флаг уже отражает, было ли нарушение. То же
работает для символов строки. Проверим, что
в "hello" нет буквы 'z':
val str1 = "hello"
var hasZ = false
for (ch in str1) {
if (ch == 'z') {
hasZ = true
}
}
println(hasZ)
Когда достаточно первого нарушения, после
смены флага ставят break и выходят
из цикла. Затем по флагу выводят сообщение:
var isAllPositive = true
for (num in 5 downTo -5) {
if (num <= 0) {
isAllPositive = false
break
}
}
if (isAllPositive) {
println("+++")
} else {
println("---")
}
Проверьте, что все символы строки "kotlin"
являются строчными латинскими буквами от
'a' до 'z'. Выведите "+++"
или "---".
Дано целое число 17. Проверьте, является
ли оно простым: делится только на 1
и на само себя. Выведите "+++" или
"---".
Даны числа от 1 до 10.
Проверьте, есть ли среди них число 7.
Выведите "+++" или "---".
Даны числа от -3 до 4.
Проверьте, есть ли среди них отрицательные.
Выведите "+++" или "---".
Даны числа от 2 до 8.
Проверьте, все ли они четные.
Выведите "+++" или "---".
Даны числа от -1 до 4.
Проверьте, все ли они положительные.
Выведите "+++" или "---".
Даны числа от 3 до 12.
Проверьте, что каждое число делится на 3.
Выведите "+++" или "---".
Даны числа от -2 до 2.
Проверьте, что ни одно из них не равно нулю.
Выведите "+++" или "---".
Даны числа от 9 до 15.
Проверьте, что все числа двузначные.
Выведите "+++" или "---".
Дана строка "12345".
Проверьте, состоит ли она только из цифр.
Выведите "+++" или "---".
Дана строка "abcde".
Проверьте, является ли она палиндромом.
Выведите "+++" или "---".