2016-04-15 6 views
0

Ich bin neu in Java. Ich versuche, das Fakultät einer Zahl unter Verwendung Scanner zu finden. Ich erhalte einen Fehler unter , da nicht in eine Variable aufgelöst werden kann. Was heißt das?"kann nicht in eine Variable aufgelöst werden" in for-Schleife

import java.util.Scanner; 

public class fact { 

    public static void main(String[] args) { 
     // TODO Auto-generated method stub 
     Scanner object = new Scanner(System.in); 
     System.out.println("enter a number:\n"); 
     int i = object.nextInt(); 

     int result = 1; 

     for (p = 1; p <= i; p++) { 
      result = result * 1; 
      System.out.println("factorial of a number is:result"); 
     } 

    } 

} 

Antwort

5

Es bedeutet, dass Sie keine Variable p definiert haben (und noch versuchen Sie es zu 1 in Ihrer for Schleife zu initialisieren). Ändern

for(p=1;p<=i;p++) 

zu

for(int p=1;p<=i;p++) 
2

Sie sollten die Variable p in Ihrer for Schleife definieren, wie Sie i Variable wie folgt definiert sind:

for(int p = 1; p <= i; p++) 
2

Sie haben mehrere Fehler hier:

Die erste (und die meisten wichtig) ist, dass Sie niemals definieren. Wie die anderen Antworten sagen, definieren Sie es entweder vorher() oder in der Schleife.

Die zweite ist, dass Sie nicht tatsächlich die Fakultät berechnen, was ein zusätzliches Problem ist. Aber lösen Sie zuerst Problem 1, da es sich um einen Compilerfehler handelt.

Die dritte ist, dass Sie nicht wirklich das Ergebnis drucken. Sie müssten System.out.println("The result was: " + result) tun.

Auch Sie können nicht die print-Anweisung wollen innerhalb der Schleife sein ...

0

Dieser Code viele Kompilierungsfehlern hat. Im Folgenden ist der Arbeitscode

import java.util.Scanner; 

public class ScannerEx {

public static void main(String[] args) { 

    Scanner scanner = new Scanner(System.in); 
    System.out.println("enter a number:\n"); 
    int number = scanner.nextInt(); 

    int result = 1; 


    for(int p=1; p <=number ;p++) { 
     result= result*p; 

    } 
    System.out.println("Factorial of a number is " + result); 
} 

}

+1

eine Klasse mit einem Großbuchstaben beginnt, ist kein Übersetzungsfehler, nur eine Konvention Tabu - Sie machen es klingen als wäre es der erste. – childofsoong

Verwandte Themen