Помогите с задачей пожалуйста.
Есть задача, условием которой является вывод определенного 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, время: 02:51. |