jenis operan yang buruk untuk operator biner, "<=" tidak berfungsi meskipun saya yakin saya sedang mengerjakan bilangan bulat [duplikat]
Saya terus mendapatkan kesalahan yang mengatakan bahwa saya tidak dapat menggunakan boolean, diperlukan bilangan bulat, tetapi N adalah bilangan bulat, saya tidak dapat memikirkan solusinya.
public static void main(String[] args) {
int N = scanner.nextInt();
scanner.skip("(\r\n|[\n\r\u2028\u2029\u0085])?");
if(1<=N<=100){
if(N % 2 != 0){
System.out.println("Weird");
} else {
if(2<=N<=6){
System.out.println("Not Weird");
} else if (6<=N<=20){
System.out.println("Weird");
} else if(N>=20){
System.out.println("Not Weird");
}
}
}
scanner.close();
}
Jawaban
1 aran
Anda tidak dapat melakukan ini secara langsung di Java:
if(1<=N<=100)
Apa yang terjadi adalah ia menghitung terlebih dahulu (1<=N)
, yang akan mengembalikan a boolean
.
Kemudian mencoba untuk mengkompilasi ( [boolean]<=100
), yang tidak masuk akal, menunjukkan kepada Anda:
The operator <= is undefined for the argument type(s) boolean, int
Dalam kasus Anda:
The operator <= is undefined for the argument type(s) [1<=N]boolean, [100]int
Ubah semua ketentuan sehingga mengikuti formulir ini:
(min<=number && number<=max)
int N = scanner.nextInt();
scanner.skip("(\r\n|[\n\r\u2028\u2029\u0085])?");
if(1<=N && N<=100)
{
if(N % 2 != 0)
System.out.println("Weird");
else
{
if (2<=N && N<=6)
System.out.println("Not Weird");
else if (6<=N && N<=20)
System.out.println("Weird");
else if(N>=20)
System.out.println("Not Weird");
}
}
Kiat Pemilik Anjing yang Bermanfaat: Mengapa Penting untuk Membiarkan Anjing Anda Mengendus di Jalan
Taylor Sheridan Baru Menambahkan 1 Bintang 'Yellowstone' Favoritnya ke Pemeran 'Lawmen: Bass Reeves'