Ich habe ein Problem mit der while-Schleife in Java. Ich habe viel gesucht. aber ich kann es nicht lösen. Speziell mit und Operator, Dekrement Operator.

Eigentlich möchte ich den gleichen Code in Java machen. Aber in Java kann ich die while-Schleife mit dieser Bedingung nicht verwenden.

int dataSet;

scanf ("%d", &dataSet);

while ( dataSet-- ) {

    char a;
    int result = 0;

    while ( scanf ("%c", &a) && a != 'X' ) {

        result += function (a);
    }

    printf ("%d\n", result);
}
return 0;
-2
Md Soumiq Ahmed Abir 22 Feb. 2020 im 19:23

4 Antworten

Beste Antwort

Java ist stark typisierte Sprache. Die Bedingung wird nicht automatisch in einen Booleschen Wert umgewandelt, wie dies beispielsweise bei Javascript der Fall ist.

Sie können while ( dataSet-- > 0 ) verwenden

Sie sollten unter Bedingungen nur boolesche Werte verwenden.

1
Hett 4 Apr. 2020 im 17:30

Um Leerzeichen in der Eingabe zu vermeiden, können Sie die gesamte Eingabe lesen, lesen und dann weiter analysieren, um einzelne Eingaben abzurufen

    Scanner sc = new Scanner(System.in);
    String inputCollective = sc.next();
    char[] inputArray = inputCollective.toCharArray();
    for (char ch: inputArray) {
        int number = Integer.parseInt(ch+"");
        System.out.println(number);
    }

PS: Code sieht aus wie Fix! ..aber es wäre toll wenn es hilft :)

0
Aditya Rewari 24 Feb. 2020 im 04:48

Hier ist der Code ...

converter1 c1=new converter1();
  Scanner s1 = new Scanner(System.in);
    int data;
    data=s1.nextInt();
    while(data--  != 0){
        char a=0;
        int sum=0;
       do {
           a = s1.next().charAt(0);
           sum += c1.function(a);
       } while( a != 'X');
        System.out.println(sum);

Aber für die Ausgabe der Eingabe benötigt es Leerzeichen zwischen den Zeichen wie folgt .... (A B C X) ...

Ohne Leerzeichen wie dieses .... (ABCX) gibt es keine Ausgabe.

0
Md Soumiq Ahmed Abir 23 Feb. 2020 im 04:24

Ich bearbeite meine Antwort. Sieht aus wie Ihre Punkte auf die innere while-Schleife Ihres Codes.

Neue Bearbeitung: In Java können Sie keine reine scanf -Funktionalität erreichen. Das Lesen erfolgt entweder über Ausführungsargumente oder über eine Datei.

Sie können also die erwarteten Zeichen in eine Datei einfügen und diese dann einzeln lesen. Ich werde mit Ihnen einen ähnlichen Ausschnitt teilen. Hoffentlich hilft!

    Scanner sc = new Scanner(new File("input.txt")); // to read file
    int dataSet = 10;
    while(dataSet-- >0) {
        String a=""; // using String here for storing letters
        int result = 0;
        while(!a.equals("X")) {
            a = sc.next();
            result += function(a);
        }
        System.out.println(result);
    }

Alte Bearbeitung: Wenn Sie nur während beunruhigt sind

Versuchen Sie diesen '==' Operator

Java versteht 0 nicht als false

while ( dataSet-- != 0 )
0
Aditya Rewari 22 Feb. 2020 im 20:03