Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Kết quả 1 đến 7 của 7
  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Đầu tiên, bài bạn còn sai đó, sửa lại rồi tính tiếp, chú ý chỗ tô đỏ để sửa lại cho đúng:

    Mã:
    package bai1;
    
    import java.util.Scanner;
    
    public class Array {
        int n;
        private String HoTen;
        Scanner scanner = new Scanner(System.in);
        public void nhapN() {    
        System.out.print("nhap so sinh vien:");
            int n= scanner.nextInt();
            scanner.nextLine();
        }
        public void nhapSv() {
             String arrayString[] = new String[n];
            for(int i=0;i<n;i++) {
                System.out.println("nhap ho ten sinh vien thu: "+(i+1)+"");
                arrayString[i]=scanner.nextLine();
            }
            int dem=0;
            String nhap;
            System.out.print("nhập tên sinh viên muốn tìm kiếm:");
            nhap=scanner.nextLine();
            for(int i=0;i<arrayString.length;i++) {
                if(nhap.equals(arrayString[i])) {
                    System.out.println("co sinh vien trong danh sach");
                }
                else
                    dem++;
                if(dem==arrayString.length)
                    System.out.println("khong co sinh vien trong danh sach");
            }
        }
    }
    Giờ bạn muốn tách phần tìm kiếm thành phương thức mới thì thế này:

    Mã:
    package bai1;
    
    import java.util.Scanner;
    
    public class Array {
        int n;
        private String HoTen;
        Scanner scanner = new Scanner(System.in);
        String[] arrayString;
        
        public void nhapN() {    
        System.out.print("nhap so sinh vien:");
            n= scanner.nextInt();
            scanner.nextLine();
        }
        public void nhapSv() {
            arrayString = new String[n];
            for(int i=0;i<n;i++) {
                System.out.println("nhap ho ten sinh vien thu: "+(i+1)+"");
                arrayString[i]=scanner.nextLine();
            }
        }
        
        public void find() {
            int dem=0;
            String nhap;
            System.out.print("nhập tên sinh viên muốn tìm kiếm:");
            nhap=scanner.nextLine();
            for(int i=0;i<arrayString.length;i++) {
                if(nhap.equals(arrayString[i])) {
                    System.out.println("co sinh vien trong danh sach");
                }
                else
                    dem++;
                if(dem==arrayString.length)
                    System.out.println("khong co sinh vien trong danh sach");
            }
        }
    }
    Mã:
    package bai1;
    
    public class Main {
        public static void main(String[] args) {      
            
            Array array = new Array();    
            array.nhapN();
            array.nhapSv();
            array.find();
        }
    }

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    Làm thế nào để tách logic xử lý trong Java?

    nếu mình muốn tách phần điều kiện tìm kiếm thành 1 phương thức mới thì làm sao vậy m.n:

    Mã:
    package bai1;
    
    import java.util.Scanner;
    
    public class Array {
        int n;
        private String HoTen;
        Scanner scanner = new Scanner(System.in);
        public void nhapN() {    
        System.out.print("nhap so sinh vien:");
            int n= scanner.nextInt();
            scanner.nextLine();
        }
        public void nhapSv() {
             String arrayString[] = new String[n];
            for(int i=0;i<n;i++) {
                System.out.println("nhap ho ten sinh vien thu: "+(i+1)+"");
                arrayString[i]=scanner.nextLine();
            }
            int dem=0;
            String nhap;
            System.out.print("nhập tên sinh viên muốn tìm kiếm:");
            nhap=scanner.nextLine();
            for(int i=0;i<arrayString.length;i++) {
                if(nhap.equals(arrayString[i])) {
                    System.out.println("co sinh vien trong danh sach");
                }
                else
                    dem++;
                if(dem==arrayString.length)
                    System.out.println("khong co sinh vien trong danh sach");
            }
        }
    }
    Mã:
    package bai1;
    
    public class Main {
        public static void main(String[] args) {      
           
            Array array = new Array();    
            array.nhapN();
            array.nhapSv();
        }
    }

  3. #3
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    ak mình hiểu rồi cám ơn bạn.....
    Trích dẫn Gửi bởi pato24193
    Nếu bạn dùng String arrayString = new String[n] trong phương thức nhapSv() thì nó chỉ hoạt động trong phương thức này. Khi phương thức này kết thúc, thì nó không còn tồn tại nữa. Và qua phương thức find(), cần phải sử dụng lại nó <--- Nó không còn tồn tại thì sao mà sử dụng được?
    (Bởi vì nó được khai báo trong phương thức nhapSv())

    Mã:
    ...
        public void nhapSv() {
             String arrayString[] = new String[n];
    ...
    Nếu bạn khai nó trong class (như mình làm ở trên), thì nó sẽ hoạt động ở mọi phương thức trong class (nhapN, nhapSv, find...), tức là phạm vi hoạt động của nó sẽ rộng hơn.

    Mã:
    ...
    public class Array {
        int n;
        private String HoTen;
        Scanner scanner = new Scanner(System.in);
        String[] arrayString;
    ...

  4. #4
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    tk bạn nhiều mà sao cái chổ khai báo mảng mình dùng thế này: String arrayString = new String[n] thì không đươc vậy bạn giải thích dùm mình được hem....
    Trích dẫn Gửi bởi pato24193
    Đầu tiên, bài bạn còn sai đó, sửa lại rồi tính tiếp, chú ý chỗ tô đỏ để sửa lại cho đúng:

    Mã:
    package bai1;
    
    import java.util.Scanner;
    
    public class Array {
        int n;
        private String HoTen;
        Scanner scanner = new Scanner(System.in);
        public void nhapN() {    
        System.out.print("nhap so sinh vien:");
            int n= scanner.nextInt();
            scanner.nextLine();
        }
        public void nhapSv() {
             String arrayString[] = new String[n];
            for(int i=0;i<n;i++) {
                System.out.println("nhap ho ten sinh vien thu: "+(i+1)+"");
                arrayString[i]=scanner.nextLine();
            }
            int dem=0;
            String nhap;
            System.out.print("nhập tên sinh viên muốn tìm kiếm:");
            nhap=scanner.nextLine();
            for(int i=0;i<arrayString.length;i++) {
                if(nhap.equals(arrayString[i])) {
                    System.out.println("co sinh vien trong danh sach");
                }
                else
                    dem++;
                if(dem==arrayString.length)
                    System.out.println("khong co sinh vien trong danh sach");
            }
        }
    }
    Giờ bạn muốn tách phần tìm kiếm thành phương thức mới thì thế này:

    Mã:
    package bai1;
    
    import java.util.Scanner;
    
    public class Array {
        int n;
        private String HoTen;
        Scanner scanner = new Scanner(System.in);
        String[] arrayString;
        
        public void nhapN() {    
        System.out.print("nhap so sinh vien:");
            n= scanner.nextInt();
            scanner.nextLine();
        }
        public void nhapSv() {
            arrayString = new String[n];
            for(int i=0;i<n;i++) {
                System.out.println("nhap ho ten sinh vien thu: "+(i+1)+"");
                arrayString[i]=scanner.nextLine();
            }
        }
        
        public void find() {
            int dem=0;
            String nhap;
            System.out.print("nhập tên sinh viên muốn tìm kiếm:");
            nhap=scanner.nextLine();
            for(int i=0;i<arrayString.length;i++) {
                if(nhap.equals(arrayString[i])) {
                    System.out.println("co sinh vien trong danh sach");
                }
                else
                    dem++;
                if(dem==arrayString.length)
                    System.out.println("khong co sinh vien trong danh sach");
            }
        }
    }
    Mã:
    package bai1;
    
    public class Main {
        public static void main(String[] args) {      
            
            Array array = new Array();    
            array.nhapN();
            array.nhapSv();
            array.find();
        }
    }

  5. #5
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Nếu bạn dùng String arrayString = new String[n] trong phương thức nhapSv() thì nó chỉ hoạt động trong phương thức này. Khi phương thức này kết thúc, thì nó không còn tồn tại nữa. Và qua phương thức find(), cần phải sử dụng lại nó <--- Nó không còn tồn tại thì sao mà sử dụng được?
    (Bởi vì nó được khai báo trong phương thức nhapSv())

    Mã:
    ...
        public void nhapSv() {
             String arrayString[] = new String[n];
    ...
    Nếu bạn khai nó trong class (như mình làm ở trên), thì nó sẽ hoạt động ở mọi phương thức trong class (nhapN, nhapSv, find...), tức là phạm vi hoạt động của nó sẽ rộng hơn.

    Mã:
    ...
    public class Array {
        int n;
        private String HoTen;
        Scanner scanner = new Scanner(System.in);
        String[] arrayString;
    ...

  6. #6
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    @haokiem100: Bạn nên rút kinh nghiệm đặt câu hỏi mỗi khi viết bài như sau, tuân thủ quy tắc hỏi:

    WHAT - WHY - HOW

    Với vấn đề của bạn bạn nên ghi tiêu đề: Làm thế nào để tách logic xử lý trong Java?

    Như vậy mọi người sẽ biết rõ hơn bạn đang gặp vấn đề gì khi đọc title rồi. Tránh những cách viết giật tít nhé. Mình sẽ sửa lại giúp bạn lần này

  7. #7
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Hình như bạn mới học java.
    Cố gắng tự tìm hiểu trước, không biết nên hỏi anh google trước nhé.
    Sẽ biết nhiều hơn

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •