Jump to content

Welcome to [ iT ] Forums
Register now to gain access to all of our features. Once registered and logged in, you will be able to create topics, post replies to existing threads, give reputation to your fellow members, get your own private messenger, post status updates, manage your profile and so much more. If you already have an account, login here - otherwise create an account for free today!
Cộng đồng Âm nhạc Việt Nam

Hình ảnh

lỗi nhập mảng

- - - - -

  • Please log in to reply
1 reply to this topic

#1
Turn off

Turn off

    Thành viên mới

  • Member
  • 3 Bài Viết:

Đề bài : Số sinh viên nhập từ bàn phím. Khai báo 1 mảng gồm danh sách họ tên sinh viên. Tên từng sinh viên nhập từ bàn phím. Sau khi nhập xong, chng trình hỏi nhập tên sinh viên muốn tìm kiếm. Tìm và in ra kết quả là có trong danh sách hay không.

import java.util.Scanner;
public class TimKiemSV{
    public static void main(String args []) {
        Scanner nhapDuLieu = new Scanner (System.in);
        int soSV;

        //Nhap so sv
        System.out.print("Nhap so sinh vien : ");
        soSV = nhapDuLieu.nextInt();
        String[] hoTenSV = new String[soSV];
        
        //Nhap ten sv
        for (int a=1; a<=soSV; a++){
            System.out.print("\nHo va ten sv thu " + a + " : ");      // loi
            hoTenSV[a-1] = nhapDuLieu.nextLine();
        }

        //Tim kiem
        String tkTen;
        System.out.println("Ban nhap ten sinh vien can tim : ");
        tkTen = nhapDuLieu.nextLine();

        boolean kt=false;
        int i;
        for (i=1; i<soSV; i++){
            if (tkTen.equals(hoTenSV[i])) {
                kt=true;
                break;
            }                
        }        

        //Thong bao cho nguoi dung biet
        if (kt==true)
            {System.out.println(tkTen + " o vi tri thu " + (i+1));}
        else
            {System.out.println("Khong tim thay sv " + tkTen);}

    }
}

khi chạy chương trình nhập số sv = 3 thì nó hiện phần nhập tên như sau :
 

Ho va ten sv thu 1 :

Ho va ten sv thu 2 :

 

tại sao "Ho va ten sv thu 1 :" không được nhập mà lại nhảy sang "Ho va ten sv thu 2  :" mới được nhập, mong các bạn giúp đỡ !


Bài viết này được chỉnh sửa bởi Turn off: 29 September 2014 - 08:37 PM


#2
trunk

trunk

    Thành viên mới

  • Newbies
  • 1 Bài Viết:

Theo như mình đọc trên mạng là do nó trôi ký tự Enter khi ta nhập số sinh viên nên khi vòng lặp đợi nhập tên sv thứ 1 thì Scanner nó lại lấy luôn ký tự Enter (NextLine) vào luôn ( http://stackoverflow...ter-use-nextint). Cách sửa là thêm vào 1 dòng NextLine phía dưới.

System.out.print("Nhap so sinh vien : ");
soSV = nhapDuLieu.nextInt();
nhapDuLieu.nextLine();
String[] hoTenSV = new String[soSV];







Perfumista - Thong tin nuoc hoa

Stars Counter Game

Balloon vs. Thorns

MU Phuc Hung

Làm Việc Tài Nhà

Mu Da Nang

Tuyển Nhân Viên Bán Hàng

Tư vấn sức khỏe trực tuyến

Close [X]