2016-04-03 27 views
0

kullanarak boole dizisiyle döngü oluşturma Boolean dizisini girdi olarak alan bir yöntem yazdım ve bir döngü kullanarak dizideki tüm değerlerin birleşimini döndürür. Ancak, aynı şeyi yinelemeyi kullanmadan yapmaya çalışıyorum (hayır için izin verilenler için hayır) ve sorun yaşıyorum. Herhangi bir öneri veya ipucu? Teşekkürler! İşte Özyinelemeli

ben yineleme kısmı için yazdım budur: Bu hattında şey arıyor olabilir

public class LogicalOperators { 
    public static void main(String[] args) { 
    boolean[] queue = new boolean[] {true, false, true, true, true}; 
    System.out.println(conjunctionIter(queue)); 
    } 

public static boolean conjunctionIter(boolean[] queue){ 
    boolean allArrayTrue = true; 
    for(int i=0; i<queue.length; i++){ 
    if(queue[i] == false){ 
     allArrayTrue = false; 
     break; 
    } 
    } 
    return allArrayTrue; 
} 
+0

Sorunuzu anlamama izin verin, bir boolean dizisindeki tüm değerleri yinelemeli olarak 've' istiyor musunuz? – Clockwork

cevap

1

yinelemeli bir fonksiyonun örneği, bu bir dizide & & etkili tüm Boolean

public static boolean recurse(boolean[] ary) 
{ 
    if (ary.length == 1) { 
     return ary[0]; 
    } 

    return ary[0] && recurse(Arrays.copyOfRange(ary, 1, ary.length)); 
} 

test sürücüsü:

public static void main(String[] args) 
{ 
    boolean[] ary = { true, true, true, true, true}; 

    System.out.println(recurse(ary)); 

    boolean[] ary2 = { true, true, false, true, true}; 

    System.out.println(recurse(ary2)); 
} 
  • doğru
  • yanlış
+0

Merhaba Kevin, bu kodu denediğimde, bir Hata bulunamıyor simgesi hatası alıyorum. (değişken Diziler). neden olabileceği ile ilgili herhangi bir fikir? Teşekkürler! – montomono

+0

@montomono, 'java.util.Arrays' dosyasını içe aktarmanız gerekir. – KevinO

+0

ah doğru. hatırlatma için teşekkürler! – montomono

0

:

public class LogicalOperators { 
public static void main(String[] args) { 
boolean[] queue = new boolean[] {true, false, true, true, true}; 
System.out.println(conjunctionIter(queue,0)); 
} 

public static boolean conjunctionIter(boolean[] queue,int i){ 
if(i==queue.length) 
    return true; 
if(queue[i] == false) 
    return false; 
    else 
return conjunctionIter(queue, i+1); 
} 
} 

sizin gibi yolu Tweak. Umut yardımcı oldu !! :)

+0

Yanıt için teşekkürler, ancak, izin verdiğim tek girdi, bir dizi boole değeridir ancak yardımcı yöntemlere sahip olmalarına izin verilir. Herhangi bir fikir? Teşekkürler! – montomono

0

İşte bir yaklaşım.

İstemci kodu.

public static void main(String[] args) { 
    // write your code here 
     boolean[] queue = new boolean[] {true, false, true, true, true}; 
     System.out.println(conjunctionIter(queue)); 
    }