Trang 1 trên tổng số 3 123 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 22 kết quả

Đề tài: Cách thoát khỏi vòng lặp khi ấn phím bất kì trong C#?

  1. #1
    Ngày gia nhập
    10 2009
    Bài viết
    18

    Mặc định Cách thoát khỏi vòng lặp khi ấn phím bất kì trong C#?

    em muốn cho người dùng nhập liên tiếp một chuỗi kí tự
    nhưng nếu khi người dùng nhập vào một kí tự được chỉ đinh trước
    ví dụ như phìm Esc thì thoát vòng lặp , kết thúc quá trình nhập.

    anh chị làm ơn giúp em
    cảm ơn mọi người nhiều

  2. #2
    Ngày gia nhập
    09 2011
    Nơi ở
    Registry
    Bài viết
    43

    Ví dụ : Nhập ký tự từ bàn phím hiển thị lên màn hình mã ASCII của ký tự đó, thực hiện
    đến khi nhấn phím ESC (Mã ASCII của phím ESC là 27).
    C++ Code:
    1. #include<stdio.h>
    2. #include<conio.h>
    3. void main()
    4. {
    5. int ma ;
    6. do {
    7. ma=getch ();
    8. if (ma !=27)     // nhập các phím bất kỳ trừ phím ESC
    9. printf ("Ma ASCII %c:%d\t", ma, ma);
    10. }while (ma!=27) ; // Mã ASCII của ESC là 27 nên khi nhấn ESC thì sẽ thoát
    11. getch () ;
    12. }
    C++ Code:
    1. int BanHoc=1, BanBiet=10;
    2.     if(BanHoc==0)
    3.         cout <<"Ban nen di hoc!";
    4.     else
    5.         if(BanBiet==10)
    6.             cout <<"Ban qua pro!";

  3. #3
    Ngày gia nhập
    08 2009
    Nơi ở
    C:\Documents and Settings\ME\My Documents\Visual Studio 2010
    Bài viết
    516

    Trong sự kiên KeyPress, kiểm tra mã phím, nếu đúng phím chỉ định thì break khỏi vòng lặp.

  4. #4
    Ngày gia nhập
    10 2009
    Bài viết
    18

    Trích dẫn Nguyên bản được gửi bởi nhatminh266 Xem bài viết
    Ví dụ : Nhập ký tự từ bàn phím hiển thị lên màn hình mã ASCII của ký tự đó, thực hiện
    đến khi nhấn phím ESC (Mã ASCII của phím ESC là 27).
    C++ Code:
    1. #include<stdio.h>
    2. #include<conio.h>
    3. void main()
    4. {
    5. int ma ;
    6. do {
    7. ma=getch ();
    8. if (ma !=27)     // nhập các phím bất kỳ trừ phím ESC
    9. printf ("Ma ASCII %c:%d\t", ma, ma);
    10. }while (ma!=27) ; // Mã ASCII của ESC là 27 nên khi nhấn ESC thì sẽ thoát
    11. getch () ;
    12. }
    hic em làm trên C# như vậy không được. Nó cứ nhận nhầm 27 là số 27 do mình nhập vào chứ ko phải mã của phím Esc
    int num;

    do
    {
    Console.Write("\n Enter the number or press Esc to finish : ");
    num = int.Parse(Console.ReadLine());
    } while (num != 27);
    }


    anh chị nào biết làm ơn chỉ em với

  5. #5
    Ngày gia nhập
    03 2009
    Nơi ở
    Ở địa ngục
    Bài viết
    667

    http://msdn.microsoft.com/en-us/library/471w8d85.aspx

    Code:
    do
    {
    Console.Write("\n press Esc to finish : ");
    } while (Console.ReadKey().Key != ConsoleKey.Escape);
    }
    Mới search và sửa cho bạn.

  6. #6
    Ngày gia nhập
    10 2009
    Bài viết
    18

    Mặc định Cách thoát khỏi vòng lặp khi ấn phím bất kì trong C#?

    int a;
    do
    {
    Console.Write("\n Enter the number of Press Esc to finish: ");
    a = int.Parse(Console.ReadLine());
    }while(Console.ReadKey().Key != ConsoleKey.Escape);

    em viết đoạn code như trên thì nó lại bắt nhập 2 lần chứ không đúng theo ý muốn là cho nhập liên tiếp số tới khi nhập phím Esc thì thoát
    Vậy phải làm sao ạ
    Đã được chỉnh sửa lần cuối bởi eya_storm : 17-12-2011 lúc 02:25 PM.

  7. #7
    Ngày gia nhập
    10 2009
    Bài viết
    18

    help..................................

  8. #8
    Ngày gia nhập
    02 2011
    Nơi ở
    Bảo Lộc, Vietnam
    Bài viết
    68

    mình có ý tưởng thế này:
    khi bạn muốn dùng màn hình để đọc nội dung thì dùng Console.ReadLine() vậy nếu key nhập vào là Esc thì thoát là không có Console.ReadLine() còn nếu phím khác thì dùng Console.ReadLine().

    Visual C# Code:
    1.     if (Console.ReadKey().Key == ConsoleKey.Escape)
    2.                         {
    3.                             //Thoat Khoi Chuong Trinh (Console.ReadLine() dung de dung man hinh o day ko co nen khong dung man hinh
    4.                         }
    5.                         else
    6.                         {
    7.                             Console.ReadLine();
    8.                         }
    nhưng nó vẫn bị là khi đã nhập phím khác khi nhấn Esc thì không được. Hiện mình đang tìm cách.

  9. #9
    Ngày gia nhập
    10 2009
    Bài viết
    18

    hic
    có 1 lỗi nhỏ này mà em đau đầu mãi ko làm được
    nản thiệt

  10. #10
    Ngày gia nhập
    02 2011
    Nơi ở
    Bảo Lộc, Vietnam
    Bài viết
    68

    Visual C# Code:
    1. static void Main()
    2.         {
    3.           string[] Mang = new string[20];
    4.             int i =0;
    5.             int a = 0;
    6.             lap:
    7.             if (Console.ReadKey().Key == ConsoleKey.Escape)
    8.             {
    9.                 Environment.Exit(0);
    10.                 a = 1;
    11.             }                
    12.                 do
    13.                 {
    14.                     Console.Write("Nhap Mang {0}: ", i);
    15.                     Mang[i] = Console.ReadLine();
    16.                     i++;
    17.                     goto lap;
    18.                 }
    19.                 while (a <= 0);
    20.  
    21.           }

    đây xong rùi nhưng trông hơi chuối 1 tí có jì bạn phát triển thêm nha

Các đề tài tương tự

  1. nhập số 1 hoài thì nó ko thoát khỏi vòng lặp
    Gửi bởi sieuthi trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 3
    Bài viết cuối: 09-02-2011, 10:37 AM
  2. làm sao thoát đc 2 vòng lặp ?
    Gửi bởi dtphong1603 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 5
    Bài viết cuối: 31-12-2010, 10:53 AM
  3. Bài tập C Nhập giá trị đúng mà vẫn không thoát vòng while
    Gửi bởi Letaro trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 2
    Bài viết cuối: 22-11-2010, 12:33 PM
  4. Lập trình QT C++: Thoát khỏi 1 hàm có vòng lặp vô tận trong thread?
    Gửi bởi bboy0303 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 3
    Bài viết cuối: 25-05-2009, 11:09 PM
  5. không thoát được khỏi vòng lặp while
    Gửi bởi Etramus trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 2
    Bài viết cuối: 22-10-2008, 05:50 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn