Помогите с задачей пожалуйста.
Есть задача, условием которой является вывод определенного alert при определенных условиях.
1) При условии цвет не красный\зеленый, большой, круглый выводить 1 alert. 2) При условии цвет зеленый,большой или маленький, квадратный соответственно 2 alert. Проблема - при любом условии выводится 2 alert. //параметры var color = prompt('Цвет','синий, красный или зеленый?'); var size = prompt('Размер','большой или маленький?'); var form = prompt('Форма','круглый или квадратный?'); //условие для 1 alert if ((color = !'зеленый')&&(color = !'красный')&&(size = 'большой')&&(form = 'круглый')) { alert('Что-то синее и большое'); } //условие для 2 alert else if ((color ='зеленый')&&(form = 'квадратный')) { alert('Наверное вы подумали про яблоко, но почему квадратное?'); } Объясните нубу где мой косяк. |
Цитата:
Цитата:
Цитата:
Цитата:
|
Цитата:
Это к тому, что они должны быть на латинице написаны или что? |
YorikoSC,
смотрите внимательнее медитируйте и наступит просветление -- почему Цитата:
Цитата:
|
Цитата:
http://javascript.ru/comparison-operators Цитата:
|
ksa,
точно :cray: Цитата:
|
Спасибо большое.
|
Цитата:
var color='красный'; alert(color = !'зеленый'); alert(color); |
Цитата:
var color = prompt('Цвет','синий, красный или зеленый?'); var size = prompt('Размер','большой или маленький?'); var form = prompt('Форма','круглый или квадратный?'); if ((color != "зеленый")&&(color != "красный")&&(size = "большой")&&(form = "круглый")) { alert('Что-то синее и большое'); } else if ((color = "зеленый")&&(form = "квадратный")) { alert('Наверное вы подумали про яблоко, но почему квадратное?'); } Теперь все работает, как должно. Хотя и этот вариант маразматичен, в плане задания параметров. |
Цитата:
Цитата:
|
Цитата:
var color = prompt('Цвет: синий, красный или зеленый?',''); var size = prompt('Размер: большой или маленький?',''); var form = prompt('Форма: круглый или квадратный?',''); if ((color != "зеленый")&&(color != "красный")&&(size = "большой")&&(form = "круглый")) { alert('Что-то синее и большое'); } else if ((color = "зеленый")&&(form = "квадратный")) { alert('Наверное вы подумали про яблоко, но почему квадратное?'); } |
Цитата:
Если для 2 alert то условию задачи не важен размер. |
Цитата:
|
Цитата:
Нужно так if ((color != "зеленый")&&(color != "красный")&&(size == "большой")&&(form == "круглый")) В другом условии такоя же фигня. |
Цитата:
var color = prompt('Цвет: синий, красный или зеленый?',''); var size = prompt('Размер: большой или маленький?',''); var form = prompt('Форма: круглый или квадратный?',''); if ((color == 'синий')&&(color !== "зеленый")&&(color !== "красный")&&(size == "большой")&&(form == "круглый")) { alert('Что-то синее и большое'); } else if ((color == "зеленый")&&(size == 'большой'||'маленький')&&(form == "квадратный")) { alert('Наверное вы подумали про яблоко, но почему квадратное?'); } else { alert('Одно или несколько условий заданы неверно'); } Просто, если писать "=" то в 1 варианте при вводе даже желтого цвета, огромного размера, и плоской формы, он выдаст 1 alert. Так же и для 2 alert. Я конечно могу заблуждаться - мой опыт в JS всего неделя. |
Цитата:
|
Цитата:
|
Цитата:
нужно каждый вариант обрабатывать отдельно: ...&&(size == 'большой' || size == 'маленький')&&... |
Цитата:
|
Народ, прошу помощи ещё раз - я не от себя лично а от всей нашей группы:)
В общем мы не можем понять, что от нас хотят: var i = 1; var j; var person = { firstname: "John", lastname: "Doe", id: 5566 }; var carname = new String; var x = new Number; var y = new Boolean; var cars = new Array; var anything = new Object; После объявления переменных по очереди напишите название переменной и поставьте точку, познакомьтесь в появившейся контекстной справке со свойствами и методами доступными при работе с переменными. Обратите внимание, что при выборе метода надо потом еще ставить скобки, например: x.toString(). Если метод принимает аргументы, то они указываются в скобках, например: carname.replace("ку","ре") – заменить «ку» на «ре» в текущем значении переменной carname. Буду весьма признателен всем откликнувшимся:) |
YorikoSC, вам предлагается ознакомится какие имеются свойства и методы у каждого типа переменных в JavaScript...
|
Все равно не очень понятно, но это ладно головняком стало другое задание:
<!DOCTYPE html> <html> <body> <p>Задание 1 вариант 4: Написать скрипт, в котором будет предлагаться ввести текст размером не менее случайного сгенерированного программно числа (генерировать в диапазоне от 1 до 45) символов. Все четные символы перевести в верхний регистр, все нечетные в нижний регистр. Вывести в сообщении полученный результат.</p> <p id="условие">Нажмите на кнопку, чтобы сгенерировать число.</p> <p id="текст"></p> <button onclick=Generate()>ГСЧ</button> <button onclick=Text()>Нажмите для ввода.</button> <script> function Generate(){ document.getElementById("условие").innerHTML = Math.floor(Math.random() * 44)+1; document.getElementById("текст").innerHTML = "Введите текст длинной в число." } function Text(){ var x = prompt("Введите текст:", ""); if (x = Generate()){ alert("Ура,правильно!") } } </script> </body> </html> Естественно, что при вводе текстка происходит не проверка а генерация нового числа:( А как ещё и символы разбить на ToUpperCase, ToLowerCase я вообще понять не могу, хотя гугл уже ничего нового мне не говорит:( Минусы вечерней формы обучения - нам ни фига не объясняют((. |
YorikoSC, предыдущее задание нельзя назвать заданием...чисто ознакомление...
с текущим...делайте все действия в одной функции сгенерируйте случайно число; предлагайте вводить текст пока его длина не будет достигнута величины "random-но" сгенерированного числа; как только длина текста достигнута с помощью метода charAt() в цикле получайте i-ый символ строки -> если это четный символ, т.е. остаток от деления на 2 = 0 (number % 2) - значит число четное, иначе не четное; требуемый результат собирайте в новую переменную (строку) и выводите результат на экран... |
function Generate(){ document.getElementById("условие").innerHTML = Math.floor(Math.random() * 44)+1; document.getElementById("текст").innerHTML = "Введите текст длинной в число."; var x = prompt("Введите текст длинной в сгенерированное число",""); while ("x".lenght = "условие") { x = prompt("Введите текст длинной в сгенерированное число",""); } } Как приравнять к рандомному числу корректно? Из того что я написал он не проверяет:( |
Цитата:
function Generate() { var random = Math.floor(Math.random() * 44)+1, x; document.getElementById("условие").innerHTML = random; document.getElementById("текст").innerHTML = "Введите текст длинной не менее чем "+random+" символов."; //alert(random); do { x = prompt("Введите текст длинной в сгенерированное число ("+random+")",""); } while (x.length < random) } Generate(); |
Огромное вам спасибо:)
|
function Generate(){ var random = Math.floor(Math.random() * 44)+1, x; document.getElementById("условие").innerHTML = random; document.getElementById("текст").innerHTML = "Введите текст длинной в "+random+" символов."; do { x = prompt("Введите текст длинной в сгенерированное число",""); } while (x.length != random); var answer = x; { alert(x.charAt(i%2=0).toUpperCase()); } } Generate(); Ну не работает оно:( Не понимаю я как правильно применить(( Попробовал переписать:( function Generate(){ var random = Math.floor(Math.random() * 44)+1, x; document.getElementById("условие").innerHTML = random; document.getElementById("текст").innerHTML = "Введите текст длинной в "+random+" символов."; do { x = prompt("Введите текст длинной в сгенерированное число",""); } while (x.length != random); var answer = x.charAt(); if (charAt(i%2=0)) { return toUpperCase; } else { return toLowerCase; { alert("answer"); } } Generate(); Результат тот же:( |
YorikoSC, откуда взялись скобки?
{ alert(x.charAt(i%2=0).toUpperCase()); } и естественно нужно обрабатывать (не)четность символов в отдельно цикле... function Generate() { var random = Math.floor(Math.random() * 44)+1, x, final_str = ""; document.getElementById("условие").innerHTML = random; document.getElementById("текст").innerHTML = "Введите текст длинной не менее чем "+random+" символов."; //alert(random); do { x = prompt("Введите текст длинной в сгенерированное число ("+random+")",""); } while (x.length < random) for (i=0; i < x.length; i++) { // в цикле перебираем всю полученную строку и собираем новую на основе поставленной задачи if (i%2) { // если номер очередного символа строки делится на 2 с остатком - нечетный final_str += x.charAt(i).toUpperCase(); } else { // иначе четный final_str += x.charAt(i).toLowerCase(); } } alert(final_str); } Generate(); |
Цитата:
function Generate(){ var random = Math.floor(Math.random() * 44)+1, x; var answer = new String()//добавил новое значение - без него ругалось. document.getElementById("условие").innerHTML = random; document.getElementById("текст").innerHTML = "Введите текст длинной в "+random+" символов."; do { x = prompt("Введите текст длинной в сгенерированное число",""); //отсюда убрал alert - он стопорил процесс, в любом случае. } while (x.length != random);//поставил != т.к. при < большее кол-во символов пропускалось, как верное for (i=0; i< x.length; i++) {//перебор полученой строки. if (i%2) //проверка четности, если делится на 2 без остатка. { answer +=x.charAt(i).toUpperCase(); } else //если не делится. { answer +=x.charAt(i).toLowerCase(); } } alert(answer); } Generate(); В общем большое спасибо:) без вас бы кумекал половину ночи:) |
YorikoSC,
Цитата:
Цитата:
Цитата:
Цитата:
|
Часовой пояс GMT +3, время: 04:38. |