Написал данный код и он как-то некорректно работает.
if (years == 0 ){
age = ""; }
if (years == 1 ){
age = "год"; }
if (years <=4){
age = "года"; }
if (years <=20){
age = "лет"; }
if (years ==21){
age = "год"; }
if (years <=24){
age = "года"; }
if (years <=30){
age = "лет"; }
if (years ==31){
age = "год"; }
if (years <=34){
age = "года"; }
if (years <=40){
age = "лет"; }
if (years ==41){
age = "год"; }
if (years <=44){
age = "года"; }
if (years <=50){
age = "лет"; }
При любом возрасте пишет "лет"
Что-то странное начинается в 51 год. Придется добавить в функцию еще кода (.
function ageToText(years) {
if (years == 0) {
age = "";
} else if (years == 1) {
age = "год";
} else if (years <= 4) {
age = "года";
} else if (years <= 20) {
age = "лет";
} else if (years == 21) {
age = "год";
} else if (years <= 24) {
age = "года";
} else if (years <= 30) {
age = "лет";
} else if (years == 31) {
age = "год";
} else if (years <= 34) {
age = "года";
} else if (years <= 40) {
age = "лет";
} else if (years == 41) {
age = "год";
} else if (years <= 44) {
age = "года";
} else if (years <= 50) {
age = "лет";
}
return years + " " + age;
}
for (var i = 0; i < 110; i++) {
$("#ages").append(ageToText(i) + "<br/>");
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="ages"></div>
А вот как надо:
function ageToText(years) {
if (years == 0)
return "";
var age = "лет";
var last1 = years % 10;
var last2 = years % 100;
if (last2 >= 5 && last2 <= 20) {
//age = "лет";
} else if (last1 == 1) {
age = "год";
} else if (last1 >= 2 && last1 <= 4) {
age = "года";
}
return years + " " + age;
}
for (var i = 0; i < 130; i++) {
$("#ages").append(ageToText(i) + "<br/>");
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="ages"></div>
Моё виденье данного кода :
int lastNumberOfYear = years;
lastNumberOfYear %= 10;
if (lastNumberOfYear == 0 || lastNumberOfYear == 5 || lastNumberOfYear == 6 || lastNumberOfYear == 7 || lastNumberOfYear == 8 || lastNumberOfYear == 9) {
age = "лет";
}
if (lastNumberOfYear == 1) {
age = "год";
}
if (lastNumberOfYear == 2 || lastNumberOfYear == 3 || lastNumberOfYear == 4) {
age = "года";
}
System.out.println(age + " " + years);
Для меня ваши коды просто ломают голову, я сделал самым примитивным способом, но к сожалению это не цикл, а просто возраст от 0 до 100. И я понял что оптимизация это не мой конёк :-)
String error = "Ошибка возраста";
if (years <=100){
age = "лет"; }
if (years <=94){
age = "года"; }
if (years <=91){
age = "год"; }
if (years <=90){
age = "лет"; }
if (years <=84){
age = "года"; }
if (years ==81){
age = "год"; }
if (years <=80){
age = "лет"; }
if (years <=74){
age = "года"; }
if (years ==71){
age = "год"; }
if (years <=70){
age = "лет"; }
if (years <=64){
age = "года"; }
if (years ==61){
age = "год"; }
if (years <=60){
age = "лет"; }
if (years <=54){
age = "года"; }
if (years ==51){
age = "год"; }
if (years <=60){
age = "лет"; }
if (years <=54){
age = "года"; }
if (years <=50){
age = "лет"; }
if (years <=44){
age = "года"; }
if (years ==41){
age = "год"; }
if (years <=40){
age = "лет"; }
if (years <=34){
age = "года"; }
if (years ==31){
age = "год"; }
if (years <=30){
age = "лет"; }
if (years <=24){
age = "года"; }
if (years ==21){
age = "год"; }
if (years <=20){
age = "лет"; }
if (years <=4){
age = "года"; }
if (years == 1 ){
age = "год"; }
if (years == 0 ){
age = error; }
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
Задача - приходит два обьекта "старый" и "новый" вариантНеобходимо сравнить их поля и если они одинаковы - засетить в поле null, если разные - засетить...
Использую MySQL 8 на ОС Windows 10версия коннектора 8
Вы знали что можно использовать кириллицу при названии переменных в java?