Java: bool + int

Oct 18 2020

Apakah ada cara untuk membuat Java berfungsi dengan penambahan dan evaluasi boolean / integer? Lebih khusus lagi, C ++ memiliki fitur yang sesuai yang mempersingkat banyak pernyataan if.

for (int i = 0; i < n; ++i)
    cout << i;

Setara dengan

while (n--)
    cout << n;

Atau, alih-alih:

for (int i = 0; i < n; ++i)
    if (x == y)
        count++;

Seseorang dapat memiliki

for (int i = 0; i < n; ++i)
    count += (x==y);

Apakah ada cara untuk melakukan hal serupa di Java?

Jawaban

3 ArvindKumarAvinash Oct 18 2020 at 17:02

Anda dapat menggunakan operator terner di Java untuk efek yang sama.

public class Main {
    public static void main(String[] args) {
        int x = 5, y = 10, count = 0;
        count += x == y ? 1 : 0;
        System.out.println(count);

        x = 10;
        count += x == y ? 1 : 0;
        System.out.println(count);
    }
}

Keluaran:

0
1
Polygnome Oct 18 2020 at 17:06

Kode lebih sering dibaca daripada tertulis. Meskipun Anda dapat menggunakan operator terner, semantik ini bermuara pada hanya meningkat countjika xsamay . Jadi cara yang paling mudah dibaca untuk menulis ini adalah dengan menggunakan:

for (int i = 0; i < n; ++i)
   if (x == y) count++;

Melakukan trik seperti count += (x==y)dalam bahasa lain adalah praktik yang sudah buruk karena mengaburkan logika. Optimalkan untuk membaca, bukan menulis.