2016-03-31 12 views

cevap

3

ternary operation ve width ve height numaralarını bulmakla eşdeğerdir. Sen O kısa (ama çok okunabilir değil) form

for(int i = 0; i < Math.max(this.width, this.height); i++) 
1

gibi Math.max(int, int) kullanabilirsiniz: Bunu anlam emin farzederek söylüyorum

int limit; 
if(this.width > this.height) 
    limit = this.width; 
} else { 
    limit = this.height; 
} 
for(int i = 0; i < limit; i++) 
+0

Nit çekme gibi, sen büyük bir boyut atlatmanın Math.max kullanabilirsiniz 2 değerlerinin maksimum bulmaya çalışıyor: Kodunuzdaki, değerlendirilmesi 'limit' olur döngüden önce, bir kez. OP'nin kodunda her yineleme gerçekleşir. – Arkadiy

+1

Bu doğru! Bu benim kodumun orijinal döngü ile aynı olmadığı anlamına gelir. Umarım üçlü operasyonu açıklığa kavuşturur. – f1sh

0

, bu en bir Üçlü olarak bildiklerimiz bu daha sonra daha sonra büyük yükseklik kullanılmaktadır değilse genişliği kullanımının, uzun, daha bu geniş ise işlem

(this.width > this.height ? this.width : this.height) 

Bu sadece üzerinden çalışmaktadır.

Bu işlem için bir for döngüsü kullanamazsınız, ancak for döngüsünden açıkça kaçınmak ve orada sahip olduğunuzdan daha basit olmamak bir saldırı olacaktır. durumda sadece bu

for(int i = 0; i < Math.max(this.width,this.height); i++){ 
    //your code 
} 
İlgili konular