Chưa nhập hết dữ liệu thì lệnh in thông tin đã được thực hiện

package edu.bi.basic;
import java.util.Scanner;
public class Vietnguyen {
	public static void main(String args[]){
		Scanner scan=new Scanner(System.in);
		
		System.out.print("Nhap ten: ");
		String ten=scan.nextLine();
		
		System.out.print("Nhap tuoi: ");
		int tuoi=scan.nextInt();
		
		System.out.print("Nam/Nu :");
		String gioi=scan.nextLine();
		
		
		
		System.out.print("Thong tin : " +ten  +"\t"   +tuoi    +"\t"    +gioi );
	}

}

khi chạy CT mình mới chỉ nhập tên và tuổi chưa kịp nhập giới tính thì đã thực hiện lệnh in ra thông tin…

sau nhập tuổi phải có thêm scan.next() đã rồi mới nhập giới tính

mình thêm scan.next() rồi mà k được…bạn ns rõ hơn đc k tại mình mới bắt đầu

nhầm, là nextLine() chứ không phải next, nó liên quan đến bộ nhớ đệm

1 Like

mình thêm scan.nextLine(); vẫn báo lỗi

mình vừa test rồi nhé, bạn post ảnh lên xem

1 Like

nó còn dính kí tự enter đó bạn,

 System.out.print("Nhap tuoi: ");
 int tuoi=scan.nextInt();
 String tmp = scan.nextLine(); //để nó lấy bỏ biến đệm.
2 Likes

a mình được rồi…Cái này nó như là fflush(stdin); bên C++ nhỉ,nhưng mỗi lần xóa bộ đệm là lại phải khai 1 biến mới (String tmp=Scan.nextLine(); ) đúng k 2 b…nếu vậy thì k tiện bằng fflush(stdin); nhỉ

khai báo 1 lần rồi lần sau dùng lại :smiley:

thế mình muốn dùng thì gọi nó thế nào vậy :smiley:

không cần khai báo nhé, chỉ cần scan.nextLine() là đc, ko phải gán biến làm gì cho mệt, tốn bộ nhớ vô ích

2 Likes

hay nè khỏi cần biến luôn luôn :3

1 Like

ừ ha… :smiley:

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?