2015-09-17 1 views
0

Это моя первая публикация здесь, так что легко на меня. Я новичок в программировании и стараюсь, чтобы моя голова крутилась вокруг/while/do loops для всех сегодняшних. У меня большая часть кода закончена, однако я борюсь с одним разделом.В случае ошибки while/do loop

Программа рассчитана на 1-50 и создает 3 набора массивов: кратные два, кратные 3 и один для не кратных 2. Что я хочу сделать, это создать новый массив, который имеет кратные 2 & 3 нажал на него, сравнив два из исходных массивов.

Я искал информацию о массивах и сравнениях/пересечениях, хотя мне не удалось найти решение, которое было бы целесообразно реализовать для моего случая здесь. Самый близкий ответ на это, о котором я мог прочитать, был только для PHP.

Это где я нахожусь сейчас, после попытки выяснить это так долго:

var findCommon = function() { 
    var g = 0; 
    var w = 0; 

    if (twoMultiples[g] !== threeMultiples[w]) {  
     do { 
      g++; 
     } 

     while (g < w);  
     do {  
      w++;  
     } 

     while (g > w); 
    } else {  
     bothMultiples.push(twoMultiples[g]);  
    }   
}; 

Я также думаю, что я нужен для цикла, чтобы начать эту функцию, но я могу Кажется, я выясню, какие условия я бы применил, если бы я это сделал.

Надеюсь, что смогу с этим справиться!

+0

Не мог бы вы добавить вывод программы? (Я знаю, что нет выхода, но что должно быть в каждом массиве) – moffeltje

ответ

1

Попробуйте это:

 var arrMultipleOfTwo =[]; 
     var arrMultipleOfThree =[]; 
     var arrCommonOfTwoThree =[]; 
     var arrNonMultipleOfTwo = []; 

     for(var i=0; i< 50; i++) 
     { 
      if((i%2)!=0){ 
       arrNonMultipleOfTwo.push(i); 
      } 
      if((i%2)==0){ 
       arrMultipleOfTwo.push(i); 
      } 
      if((i%3)==0){ 
       arrMultipleOfThree.push(i); 
      } 
      if((i%2)==0 || (i%3)==0){ 
       arrCommonOfTwoThree.push(i); 
      } 
     } 

     console.log("--array of multiple of 2--"+arrMultipleOfTwo.toString()); 
     console.log("--array of multiple of 3--"+arrMultipleOfThree.toString()); 
     console.log("--array of multiple of 2 and 3 both--"+arrCommonOfTwoThree.toString()); 
     console.log("--array of non-multiple of 2--"+arrNonMultipleOfTwo.toString()); 
+0

Heya! Я знаю, что я мог бы использовать только for-loop с операторами if здесь. Однако для всех целей и задач я хотел бы использовать while/do-while для решения этой проблемы. Возможно ли это? – leegw001

0
var arrMultipleOfTwo =[]; 
      var arrMultipleOfThree =[]; 
      var arrCommonOfTwoThree =[]; 
      var arrNonMultipleOfTwo = []; 
      { 
       var i=0;//count 
       do { 
        i++; 
        if((i%2)!=0){ 
         arrNonMultipleOfTwo.push(i); 
        } 
        if((i%2)==0){ 
         arrMultipleOfTwo.push(i); 
        } 
        if((i%3)==0){ 
         arrMultipleOfThree.push(i); 
        } 
        if((i%2)==0 || (i%3)==0){ 
         arrCommonOfTwoThree.push(i); 
        } 
       } 
       while (i < 50){ 
        console.log("--array of multiple of 2--"+arrMultipleOfTwo.toString()); 
        console.log("--array of multiple of 3--"+arrMultipleOfThree.toString()); 
        console.log("--array of multiple of 2 and 3 both--"+arrCommonOfTwoThree.toString()); 
        console.log("--array of non-multiple of 2--"+arrNonMultipleOfTwo.toString()); 

       } 
      } 
Смежные вопросы