30/09/2018, 20:33
NextLine() trong Java
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package bai9;
import java.util.Scanner;
/**
*
* @author Ngoc Bich
*/
public class Cau1 {
public static void main(String[] args) {
Scanner sv = new Scanner(System.in);
System.out.print("Nhập số sinh viên: ");
int n = sv.nextInt();
sv.nextLine();
String hoVaTen[] = new String[n];
for (int i = 0; i < n; i++) {
System.out.println("Nhập sinh viên thứ " + (i + 1) + " : ");
hoVaTen[i] = sv.nextLine();
}
System.out.println("Nhập tên sinh viên muốn tìm kiếm: ");
String tk = sv.nextLine();
boolean check = false;
for (int i = 0; i < n; i++) {
check = tk.equals(hoVaTen[i]);
if (check == true) {
System.out.println("Sinh viên bạn cần tìm xếp theo stt là: " + (i+1));
break;
}
}
if (check != true) {
System.out.println("Danh sách đã cho không có sinh viên bạn cần tìm!");
}
}
}
Cho mình hỏi trong chương trình trên: câu lệnh sv.nextLine(); dùng để làm gì ạ?
Bài liên quan
sv.NextLine() dùng để nhận gía trị nhâp từ bàn phím
p/s: Bỏ code và markdown nhá
Phương thức nextLine() trong của đối tượng Scanner dùng để nhận vào một dòng String nhập từ bàn phím, kết thúc khi thấy dấu xuống dòng.
Mình hiểu phương thức NextLine() rồi nhưng mà trong đoạn code trên: tại sao nếu mình bỏ dòng : sv.nextLine(); thì khi run ct thì sau khi mình nhập số sinh viên thì nó hiển thì là:
Nhập sinh viên thứ 1:
Nhập sinh viên thứ 2:
Và mình chỉ nhập được vào mỗi sinh viên thứ 2 trở đi, còn thứ 1 thì không nhập được?ai biết giải thích giùm mình với? cảm ơn nhiều!
bỏ code và markdown là sao à bạn?
Diễn đàn DayNhauHoc có hỗ trợ markdown để mọi người có thể xem code dễ dàng hơn
Việc đó thì mình đã sửa giúp bạn rồi
Lần sau bạn cho code của bạn vào giữa dấu 3 này nhé `
Đầu 3 dấu và cuối 3 dấu
Thân
Đọc đây:
khi bạn muốn nhập nhiều dòng thì dùng next(), dòng cuối cùng hẵn dùng nextLine()
mình cũng hay bị thế, trong C++ có
cin.igore();
còn trong java thì mình không biết, mình toàn thêm một lệnhnextLine();
nữa.Khi bạn nhập số sinh viên xong nhấn enter thì java nó chỉ đẩy số đi thôi, còn dấu enter vẫn ở trong bộ đệm. Vì vậy dòng sv thứ nhất gặp dấu enter sẽ nhảy đến thằng tiếp theo mà k cho bạn nhập.
Khắc phục: bạn dùng input.nextInt