2016-03-25 21 views
0

Kullanıcı girdisini okuyan ve tam sayı olup olmadığını belirleyen (kullanıcının yeniden basmaması durumunda) üç değişkenin çağrılmasını istediğim bir kod var. değişken. Aşağıdaki derleyici hatası alıyorum ben derlemeye çalıştığınızda:Tarayıcıda bir yöntem kullanılamıyor

import java.util.Scanner; 

public class Methods{ 
    public static void main(String [] arg){ 

Scanner scan=new Scanner(System.in); 

int a,b,c; 

System.out.println("Enter three ints"); 

a = getInt(scan.nextInt()); 
b = getInt(scan.nextInt()); 
c = getInt(scan.nextInt()); 

    } 



    public static int getInt(String input){ 
    Scanner scan=new Scanner(System.in); 

    int num = 0; 
    while (num <1) { 
    if(scan.hasNextInt()) { 
    int number = scan.nextInt(); 
    num +=1; 
    } 
    else{ 
     System.out.println("Invalid input. Please enter an integer value."); 
     input.next(); 
    } 

} 
} 

sen verebilir Herhangi bir yardım mutluluk duyacağız:

İşte

Error: The method getInt(int) in the type Methods is not applicable for the arguments (java.util.Scanner)

benim kodudur!

+0

Yöntemin 'getInt' bir' int' değişkeni alır onun parametresi olarak. Bir 'ın' 'bir' 'ın'' beklenen bir 'Tarayıcı' örneği geçemezsiniz. Ayrıca, kodunuz verildiği gibi derlemiyor ... 'input' türünde' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' 'fonksiyon' içinde 'input' (' '' '' '' '' '' '' '' '' '' '' '' 'fonksiyon' '' '' '' '' '' '' '' 'işlevine '' parametresi '' olarak bir parametre olarak yeniden tanımlayabilirsiniz –

cevap

1
+0

Bu cevabı yöntemimde nasıl kullanırdım? Ben sadece tarayıcı ile tamsayıları kabul etmeyi anlıyorum sanırım, ama kendi kendine metodun çağıran yanlış anlamadığını bilmiyorum. – klab102

+0

Sadece kodu ana, sadece derlemek ve çalıştırmak. Java konsolu programını oluşturduğunuzu farz ediyorum. –

0

Yöntemin getInt(int input) argüman olarak bir tamsayı bekliyor okuma "girdi olarak tek geçerli int kabul etmek Scanner kullanmak" tavsiye ederiz.

Ama kodları

, sen int yerine Tarayıcı nesnesi sağlıyoruz:

a = getInt(scan); 
b = getInt(scan); 
c = getInt(scan); 

Bu muhtemelen istediği şudur:

a = getInt(scan.nextInt()); 
b = getInt(scan.nextInt()); 
c = getInt(scan.nextInt()); 
+0

Bu, yöntemimde gerçekleşen başka bir hata veriyor: Hata: ilkel tür int'de hasNextInt() yöntemi çağrılmıyor. satırında: (! Input.hasNextInt()) { – klab102

+0

@ klab102 Ben 'nextName()' değil, örneğimde 'nextInt()' kullanın. – user3437460

+0

Bu değişikliği ana yöntemde yaptım, aldığım hata, kullanıcı girdisinin bir tam sayı olup olmadığını belirleyen getInt yöntemindedir. – klab102

İlgili konular