hasNext()条件でループを停止する

(Scanner Input=new Scanner(System.in))

I have a while loop in my program with
Input.hasNext() condition. I want to read a line with
scanner without Input.nextLine(); because i want to
use the strings and integers in that line with .next()
& .nextInt() ,how can i break the while
loop after reading one line, or how can I break the while loop with
entering newline character?

while (Input.hasNext()) {
    if (Input.hasNextFloat()) {
      Grade=Input.nextFloat();
      P.setGrades(Grade);
      j=0;k=1;
      continue;
    }
    if (k==1) {
      P.getGPA();
      P=new Person();
      k=0;
    }
    if (j==1) {
      P.setLastName(Input.next());
      continue;
    }
    P.setFirstName(Input.next());
    i++;
    j=1;
} 
ベストアンサー

これはどう?

boolean b=true;
while (Input.hasNext() && b) {
    if (Input.hasNextFloat()) {
      Grade=Input.nextFloat();
      P.setGrades(Grade);
      j=0;k=1;
    } else {
        String content=Input.next();
        if (content.equals("")) {
            b=false;
        } else {
            if (k==1) {
              P.getGPA();
              P=new Person();
              k=0;
            }
            if (j==1) {
              P.setLastName(content);
              continue;
            }
            P.setFirstName(content);
            i++;
            j=1;
        }
    }
} 

私はScannerクラスに慣れていませんが、newlineが入力された場合、next()は空文字列を返します。

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です