Bạn có thể có câu lệnh if bên trong vòng lặp for python không?

Khi chúng tôi lập trình bằng R (hoặc bất kỳ ngôn ngữ nào khác), chúng tôi thường muốn kiểm soát thời gian và cách thức các phần cụ thể trong mã của chúng tôi được thực thi. Chúng ta có thể làm điều đó bằng cách sử dụng các cấu trúc điều khiển như câu lệnh if-else, vòng lặp for và vòng lặp while

Cấu trúc điều khiển là các khối mã xác định cách các phần mã khác được thực thi dựa trên các tham số đã chỉ định. Bạn có thể nghĩ về những điều này giống như những hướng dẫn mà cha mẹ có thể đưa ra cho một đứa trẻ trước khi rời khỏi nhà

“Nếu tôi không ở nhà trước 8 giờ tối, hãy tự nấu bữa tối. ”

Các cấu trúc điều khiển đặt một điều kiện và cho R biết phải làm gì khi điều kiện đó được đáp ứng hoặc không được đáp ứng. Và không giống như một số đứa trẻ, R sẽ luôn làm theo những gì chúng ta bảo nó. Bạn có thể tìm hiểu thêm về cấu trúc điều khiển trong tài liệu R nếu muốn

Trong hướng dẫn này, chúng tôi giả định rằng bạn đã quen thuộc với các cấu trúc dữ liệu cơ bản và các phép toán số học trong R

Vẫn chưa hoàn toàn ở đó? . Bắt đầu học miễn phí, không có điều kiện tiên quyết và không cần cài đặt gì — bạn có thể bắt đầu học trong trình duyệt của mình ngay bây giờ

[thrive_leads id=’21036′]

(Hướng dẫn này dựa trên khóa học lập trình R trung cấp của chúng tôi, vì vậy hãy xem thêm. Nó tương tác và sẽ cho phép bạn viết và chạy mã ngay trong trình duyệt của mình. )

Toán tử so sánh trong R

Để sử dụng các cấu trúc điều khiển, chúng ta cần tạo các câu lệnh có thể là

team_A <- 1 # Number of goals scored by Team A
team_B <- 3 # Number of goals scored by Team B
if (team_A > team_B){
    print ("Team A will make the playoffs")
}
8 hoặc
team_A <- 1 # Number of goals scored by Team A
team_B <- 3 # Number of goals scored by Team B
if (team_A > team_B){
    print ("Team A will make the playoffs")
}
9. Trong ví dụ về trẻ em ở trên, câu nói “Bây giờ là 8 giờ tối. Bố mẹ em về chưa?” . Trong R, cách cơ bản nhất để đánh giá thứ gì đó là
team_A <- 1 # Number of goals scored by Team A
team_B <- 3 # Number of goals scored by Team B
if (team_A > team_B){
    print ("Team A will make the playoffs")
}
8 hoặc
team_A <- 1 # Number of goals scored by Team A
team_B <- 3 # Number of goals scored by Team B
if (team_A > team_B){
    print ("Team A will make the playoffs")
}
9 là thông qua các toán tử so sánh

Dưới đây là sáu toán tử so sánh cần thiết để làm việc với các cấu trúc điều khiển trong R

  • 
    team_A <- 1 # Number of goals scored by Team A
    team_B <- 3# Number of goals scored by Team B
    if (team_A > team_B){
        print ("Team A will make the playoffs")
    } else {
        print ("Team B will make the playoffs")
    }
    
    4 có nghĩa là bình đẳng. Tuyên bố
    
    team_A <- 1 # Number of goals scored by Team A
    team_B <- 3# Number of goals scored by Team B
    if (team_A > team_B){
        print ("Team A will make the playoffs")
    } else {
        print ("Team B will make the playoffs")
    }
    
    5 được đóng khung dưới dạng một câu hỏi có nghĩa là “Liệu giá trị của
    
    team_A <- 1 # Number of goals scored by Team A
    team_B <- 3# Number of goals scored by Team B
    if (team_A > team_B){
        print ("Team A will make the playoffs")
    } else {
        print ("Team B will make the playoffs")
    }
    
    6 có bằng giá trị của
    
    team_A <- 1 # Number of goals scored by Team A
    team_B <- 3# Number of goals scored by Team B
    if (team_A > team_B){
        print ("Team A will make the playoffs")
    } else {
        print ("Team B will make the playoffs")
    }
    
    7 không?”
  • 
    team_A <- 1 # Number of goals scored by Team A
    team_B <- 3# Number of goals scored by Team B
    if (team_A > team_B){
        print ("Team A will make the playoffs")
    } else {
        print ("Team B will make the playoffs")
    }
    
    8 nghĩa là “không bằng”. Câu lệnh
    
    team_A <- 1 # Number of goals scored by Team A
    team_B <- 3# Number of goals scored by Team B
    if (team_A > team_B){
        print ("Team A will make the playoffs")
    } else {
        print ("Team B will make the playoffs")
    }
    
    9 có nghĩa là “Có phải giá trị của
    
    team_A <- 1 # Number of goals scored by Team A
    team_B <- 3# Number of goals scored by Team B
    if (team_A > team_B){
        print ("Team A will make the playoffs")
    } else {
        print ("Team B will make the playoffs")
    }
    
    6 không bằng giá trị của
    "Team B will make the playoffs"
    
    1 không?”
  • "Team B will make the playoffs"
    
    2 có nghĩa là “ít hơn”. Câu lệnh
    "Team B will make the playoffs"
    
    3 có nghĩa là “Giá trị của
    
    team_A <- 1 # Number of goals scored by Team A
    team_B <- 3# Number of goals scored by Team B
    if (team_A > team_B){
        print ("Team A will make the playoffs")
    } else {
        print ("Team B will make the playoffs")
    }
    
    6 có nhỏ hơn giá trị của
    "Team B will make the playoffs"
    
    5 không?”
  • "Team B will make the playoffs"
    
    6 có nghĩa là “nhỏ hơn hoặc bằng”. Câu lệnh
    "Team B will make the playoffs"
    
    7 có nghĩa là “Giá trị của
    
    team_A <- 1 # Number of goals scored by Team A
    team_B <- 3# Number of goals scored by Team B
    if (team_A > team_B){
        print ("Team A will make the playoffs")
    } else {
        print ("Team B will make the playoffs")
    }
    
    6 nhỏ hơn hay bằng giá trị của
    "Team B will make the playoffs"
    
    9?”
  • 
    team_A <- 2 # Number of goals scored by Team A
    team_B <- 2# Number of goals scored by Team B
    if (team_A > team_B){
      print ("Team A won")
    } else if (team_A < team_B){
      print ("Team B won")
    } else {
      "Team A & B tied"
    }
    
    0 có nghĩa là “lớn hơn”. Câu lệnh
    
    team_A <- 2 # Number of goals scored by Team A
    team_B <- 2# Number of goals scored by Team B
    if (team_A > team_B){
      print ("Team A won")
    } else if (team_A < team_B){
      print ("Team B won")
    } else {
      "Team A & B tied"
    }
    
    1 e có nghĩa là “Giá trị của
    
    team_A <- 1 # Number of goals scored by Team A
    team_B <- 3# Number of goals scored by Team B
    if (team_A > team_B){
        print ("Team A will make the playoffs")
    } else {
        print ("Team B will make the playoffs")
    }
    
    6 có lớn hơn giá trị của
    
    team_A <- 2 # Number of goals scored by Team A
    team_B <- 2# Number of goals scored by Team B
    if (team_A > team_B){
      print ("Team A won")
    } else if (team_A < team_B){
      print ("Team B won")
    } else {
      "Team A & B tied"
    }
    
    3 không?”
  • 
    team_A <- 2 # Number of goals scored by Team A
    team_B <- 2# Number of goals scored by Team B
    if (team_A > team_B){
      print ("Team A won")
    } else if (team_A < team_B){
      print ("Team B won")
    } else {
      "Team A & B tied"
    }
    
    4 có nghĩa là “lớn hơn hoặc bằng”. Câu lệnh
    
    team_A <- 2 # Number of goals scored by Team A
    team_B <- 2# Number of goals scored by Team B
    if (team_A > team_B){
      print ("Team A won")
    } else if (team_A < team_B){
      print ("Team B won")
    } else {
      "Team A & B tied"
    }
    
    5 có nghĩa là “Giá trị của
    
    team_A <- 1 # Number of goals scored by Team A
    team_B <- 3# Number of goals scored by Team B
    if (team_A > team_B){
        print ("Team A will make the playoffs")
    } else {
        print ("Team B will make the playoffs")
    }
    
    6 có lớn hơn hoặc bằng giá trị của
    
    team_A <- 2 # Number of goals scored by Team A
    team_B <- 2# Number of goals scored by Team B
    if (team_A > team_B){
      print ("Team A won")
    } else if (team_A < team_B){
      print ("Team B won")
    } else {
      "Team A & B tied"
    }
    
    7 không?”

Hiểu If-Else trong R

Giả sử chúng ta đang xem một trận đấu thể thao quyết định đội nào lọt vào vòng loại trực tiếp. Chúng ta có thể hình dung các kết quả có thể xảy ra bằng cách sử dụng biểu đồ hình cây này

Bạn có thể có câu lệnh if bên trong vòng lặp for python không?

Như chúng ta có thể thấy trong biểu đồ hình cây, chỉ có hai kết quả có thể xảy ra. Nếu đội A thắng, họ sẽ vào vòng loại trực tiếp. Nếu đội B thắng, thì họ đi

Hãy bắt đầu bằng cách cố gắng biểu diễn kịch bản này trong R. Chúng ta có thể sử dụng câu lệnh if để viết chương trình in ra đội chiến thắng

Nếu các câu lệnh yêu cầu R chạy một dòng mã nếu một điều kiện trả về

team_A <- 1 # Number of goals scored by Team A
team_B <- 3 # Number of goals scored by Team B
if (team_A > team_B){
    print ("Team A will make the playoffs")
}
8. Câu lệnh if là một lựa chọn tốt ở đây vì nó cho phép chúng ta kiểm soát câu lệnh nào được in tùy thuộc vào kết quả nào xảy ra

Hình bên dưới hiển thị lưu đồ điều kiện và cú pháp cơ bản cho câu lệnh if

Bạn có thể có câu lệnh if bên trong vòng lặp for python không?

Điều kiện của câu lệnh if của chúng ta phải là một biểu thức có giá trị là

team_A <- 1 # Number of goals scored by Team A
team_B <- 3 # Number of goals scored by Team B
if (team_A > team_B){
    print ("Team A will make the playoffs")
}
8 hoặc
team_A <- 1 # Number of goals scored by Team A
team_B <- 3 # Number of goals scored by Team B
if (team_A > team_B){
    print ("Team A will make the playoffs")
}
9. Nếu biểu thức trả về TRUE, thì chương trình sẽ thực thi tất cả mã nằm trong dấu ngoặc _______33_______1. Nếu FALSE thì không có mã nào được thực thi

Biết được điều này, chúng ta hãy xem một ví dụ về câu lệnh if in tên của đội đã thắng

team_A <- 3 # Number of goals scored by Team A
team_B <- 1 # Number of goals scored by Team B
if (team_A > team_B){
  print ("Team A wins")
}
"Team A wins"

Nó đã làm việc. Bởi vì Đội A có nhiều mục tiêu hơn Đội B, câu lệnh điều kiện của chúng ta (

"Team A & B tied"
2) ước tính là
team_A <- 1 # Number of goals scored by Team A
team_B <- 3 # Number of goals scored by Team B
if (team_A > team_B){
    print ("Team A will make the playoffs")
}
8, vì vậy khối mã bên dưới nó sẽ chạy, in ra thông tin Đội A đã thắng trận đấu

Thêm câu lệnh khác trong R

Trong bài tập trước, chúng tôi đã in tên của đội sẽ lọt vào vòng loại trực tiếp dựa trên biểu thức của chúng tôi. Hãy nhìn vào một trận đấu mới về điểm số. Điều gì sẽ xảy ra nếu đội A có 1 bàn thắng và đội B có 3 bàn thắng. Team_A > team_B của chúng tôi có điều kiện sẽ đánh giá là

team_A <- 1 # Number of goals scored by Team A
team_B <- 3 # Number of goals scored by Team B
if (team_A > team_B){
    print ("Team A will make the playoffs")
}
9. Kết quả là, nếu chúng tôi chạy mã của mình, sẽ không có gì được in. Vì câu lệnh if có giá trị sai nên khối mã bên trong câu lệnh if không được thực thi

team_A <- 1 # Number of goals scored by Team A
team_B <- 3 # Number of goals scored by Team B
if (team_A > team_B){
    print ("Team A will make the playoffs")
}

Nếu quay lại lưu đồ ban đầu, chúng ta có thể thấy rằng chúng ta chỉ mã hóa một nhánh cho một trong hai khả năng

Bạn có thể có câu lệnh if bên trong vòng lặp for python không?

Lý tưởng nhất là chúng tôi muốn chương trình của mình tính đến cả hai khả năng và “Đội B sẽ lọt vào vòng loại trực tiếp” nếu biểu thức đánh giá là SAI. Nói cách khác, chúng tôi muốn có thể xử lý cả hai nhánh có điều kiện

Bạn có thể có câu lệnh if bên trong vòng lặp for python không?

Để làm điều này, chúng tôi sẽ thêm một câu lệnh khác để biến câu lệnh này thành câu lệnh thường được gọi là câu lệnh if-else. Trong R, câu lệnh if-else yêu cầu chương trình chạy một khối mã nếu câu lệnh điều kiện là

team_A <- 1 # Number of goals scored by Team A
team_B <- 3 # Number of goals scored by Team B
if (team_A > team_B){
    print ("Team A will make the playoffs")
}
8 và một khối mã khác nếu nó là
team_A <- 1 # Number of goals scored by Team A
team_B <- 3 # Number of goals scored by Team B
if (team_A > team_B){
    print ("Team A will make the playoffs")
}
9. Đây là một biểu diễn trực quan về cách thức hoạt động của nó, cả ở dạng lưu đồ và về cú pháp R

******

Bạn có thể có câu lệnh if bên trong vòng lặp for python không?
**

Để khái quát hóa, if-else trong R cần ba đối số

  1. Một tuyên bố (e. g. toán tử so sánh) đánh giá là TRUE hoặc FALSE
  2. Giá trị mà R sẽ trả về nếu toán tử so sánh là TRUE
  3. Giá trị mà R sẽ trả về nếu toán tử so sánh là FALSE

Vì vậy, đối với ví dụ của chúng tôi, chúng tôi cần thêm một khối mã chạy nếu biểu thức điều kiện của chúng tôi

"Team A & B tied"
2 trả về
team_A <- 1 # Number of goals scored by Team A
team_B <- 3 # Number of goals scored by Team B
if (team_A > team_B){
    print ("Team A will make the playoffs")
}
9. Chúng ta có thể làm điều này bằng cách thêm một câu lệnh
"Team A & B tied"
9 trong R. Nếu toán tử so sánh của chúng tôi đánh giá là FALSE, hãy in ra “Đội B sẽ lọt vào vòng loại trực tiếp. ”


team_A <- 1 # Number of goals scored by Team A
team_B <- 3# Number of goals scored by Team B
if (team_A > team_B){
    print ("Team A will make the playoffs")
} else {
    print ("Team B will make the playoffs")
}
"Team B will make the playoffs"

Tóm lại

  • Đặc điểm cơ bản của câu lệnh if là nó giúp chúng ta tạo đường dẫn phân nhánh trong mã của mình
  • Cả hai từ khóa
    
    if (matches[[1]][1] > matches[[1]][2]){
        print ("Win")
    } else {
        print ("Loss")
    } 
    
    if (matches[[2]][1] > matches[[2]][2]){
       print ("Win")
    } else { 
        print ("Loss")
    } 
    
    if (matches[[3]][1] > matches[[3]][2]){
       print ("Win")
    } else { 
       print ("Loss")
    }
    
    0 và
    "Team A & B tied"
    
    9 trong R đều được theo sau bởi dấu ngoặc nhọn
    "Team A & B tied"
    
    1, xác định các khối mã
  • Mỗi khối mã đại diện cho một trong các đường dẫn được hiển thị trong sơ đồ
  • R không chạy cả hai và nó sử dụng toán tử so sánh để quyết định khối mã nào sẽ chạy

Vượt ra ngoài hai nhánh

Cho đến nay, chúng tôi đã làm việc với giả định rằng mỗi quyết định trong cấu trúc kiểm soát của chúng tôi chỉ có hai nhánh. một tương ứng với

team_A <- 1 # Number of goals scored by Team A
team_B <- 3 # Number of goals scored by Team B
if (team_A > team_B){
    print ("Team A will make the playoffs")
}
8 và một tương ứng với
team_A <- 1 # Number of goals scored by Team A
team_B <- 3 # Number of goals scored by Team B
if (team_A > team_B){
    print ("Team A will make the playoffs")
}
9. Có rất nhiều trường hợp chúng ta có nhiều hơn hai vì một số quyết định không rút gọn thành “Có” và “Không”

Giả sử trong giây lát, chúng ta đang xem một trận đấu thể thao có thể kết thúc với tỷ số hòa. Cấu trúc điều khiển từ ví dụ cuối cùng của chúng tôi không tính đến điều này. May mắn thay, R cung cấp một cách để kết hợp nhiều hơn hai nhánh trong một câu lệnh


if (matches[[1]][1] > matches[[1]][2]){
    print ("Win")
} else {
    print ("Loss")
} 

if (matches[[2]][1] > matches[[2]][2]){
   print ("Win")
} else { 
    print ("Loss")
} 

if (matches[[3]][1] > matches[[3]][2]){
   print ("Win")
} else { 
   print ("Loss")
}
0 với từ khóa

if (matches[[1]][1] > matches[[1]][2]){
    print ("Win")
} else {
    print ("Loss")
} 

if (matches[[2]][1] > matches[[2]][2]){
   print ("Win")
} else { 
    print ("Loss")
} 

if (matches[[3]][1] > matches[[3]][2]){
   print ("Win")
} else { 
   print ("Loss")
}
6. Từ khóa other if cung cấp một khối mã khác để sử dụng trong câu lệnh

if (matches[[1]][1] > matches[[1]][2]){
    print ("Win")
} else {
    print ("Loss")
} 

if (matches[[2]][1] > matches[[2]][2]){
   print ("Win")
} else { 
    print ("Loss")
} 

if (matches[[3]][1] > matches[[3]][2]){
   print ("Win")
} else { 
   print ("Loss")
}
0 và chúng tôi có thể có bao nhiêu tùy ý. Đây là cách nó sẽ trông như thế nào


team_A <- 2 # Number of goals scored by Team A
team_B <- 2# Number of goals scored by Team B
if (team_A > team_B){
  print ("Team A won")
} else if (team_A < team_B){
  print ("Team B won")
} else {
  "Team A & B tied"
}
"Team A & B tied"

Mỗi kết quả trò chơi tiềm năng có nhánh riêng. Khối mã

"Team A & B tied"
9 giúp bảo vệ chúng tôi trong mọi tình huống có sự ràng buộc

Sử dụng vòng lặp for trong R

Bây giờ chúng ta đã sử dụng if-else trong R để hiển thị kết quả của một kết quả khớp, nếu chúng ta muốn tìm kết quả của nhiều kết quả thì sao? .


if (matches[[1]][1] > matches[[1]][2]){
    print ("Win")
} else {
    print ("Loss")
} 

if (matches[[2]][1] > matches[[2]][2]){
   print ("Win")
} else { 
    print ("Loss")
} 

if (matches[[3]][1] > matches[[3]][2]){
   print ("Win")
} else { 
   print ("Loss")
}
9

Hãy nhớ rằng chúng ta sẽ phải sử dụng

"Win"
"Win"
"Win"
0 khi lập chỉ mục, vì chúng ta muốn trả về một giá trị duy nhất trong mỗi danh sách trong danh sách của chúng ta, không phải giá trị với đối tượng danh sách. Lập chỉ mục với
"Win"
"Win"
"Win"
1 sẽ trả về một đối tượng danh sách, không phải giá trị

Vì vậy, ví dụ, trong đoạn mã chúng ta có ở trên,

"Win"
"Win"
"Win"
2 đang gọi chỉ mục đầu tiên của danh sách thứ hai (i. e. , điểm của đội A trong ván 2)

Giả sử rằng các mục tiêu của Đội A được liệt kê đầu tiên (chỉ số đầu tiên của vectơ) và của Đội B là thứ hai, chúng ta có thể tìm thấy kết quả bằng cách sử dụng if-else trong R như thế này


if (matches[[1]][1] > matches[[1]][2]){
    print ("Win")
} else {
    print ("Loss")
} 

if (matches[[2]][1] > matches[[2]][2]){
   print ("Win")
} else { 
    print ("Loss")
} 

if (matches[[3]][1] > matches[[3]][2]){
   print ("Win")
} else { 
   print ("Loss")
}

Và điều này sẽ in

"Win"
"Win"
"Win"

Đoạn mã này hoạt động, nhưng nếu chúng ta xem xét cách tiếp cận này thì sẽ dễ dàng phát hiện ra vấn đề. Viết cái này ra cho ba trò chơi đã là cồng kềnh. Điều gì sẽ xảy ra nếu chúng tôi có một danh sách 100 hoặc 1000 trò chơi để đánh giá?

Chúng tôi có thể cải thiện mã của mình bằng cách thực hiện hành động tương tự bằng cách sử dụng vòng lặp for trong R. Vòng lặp for lặp lại một đoạn mã nhiều lần cho mỗi phần tử trong một đối tượng. Điều này cho phép chúng tôi viết ít mã hơn (có nghĩa là ít khả năng mắc lỗi hơn) và nó có thể thể hiện ý định của chúng tôi tốt hơn. Đây là biểu diễn lưu đồ và cú pháp trong R (trông rất giống với cú pháp if)

Bạn có thể có câu lệnh if bên trong vòng lặp for python không?

Trong sơ đồ này, với mỗi giá trị trong chuỗi, vòng lặp sẽ thực thi khối mã. Khi không còn giá trị nào trong chuỗi, điều này sẽ trả về

team_A <- 1 # Number of goals scored by Team A
team_B <- 3 # Number of goals scored by Team B
if (team_A > team_B){
    print ("Team A will make the playoffs")
}
9 và thoát khỏi vòng lặp

Hãy phá vỡ những gì đang xảy ra ở đây

  • sự liên tiếp. Đây là một tập hợp các đối tượng. Ví dụ: đây có thể là một vectơ số c(1,2,3,4,5)
  • giá trị. Đây là một biến lặp mà bạn sử dụng để tham chiếu đến từng giá trị trong chuỗi. Xem quy ước đặt tên biến trong khóa học đầu tiên để biết tên biến hợp lệ
  • khối mã. Đây là biểu thức được đánh giá

Hãy xem xét một ví dụ cụ thể. Chúng tôi sẽ viết một vòng lặp nhanh để in giá trị của các mục trong danh sách và chúng tôi sẽ tạo một danh sách ngắn có hai mục. Đội A và Đội B


teams <- c("team_A","team_B")
for (value in teams){
    print(value)
}
"Team A wins"
0

"Win"
"Win"
"Win"
4 có hai giá trị nên vòng lặp của chúng ta sẽ chạy hai lần. Đây là một đại diện trực quan của những gì đang xảy ra

Bạn có thể có câu lệnh if bên trong vòng lặp for python không?

Khi vòng lặp hiển thị kết quả từ lần lặp đầu tiên, vòng lặp sẽ xem xét giá trị tiếp theo ở vị trí. Kết quả là, nó sẽ trải qua một lần lặp lại khác. Vì không còn giá trị nào nữa trong chuỗi nên vòng lặp sẽ thoát sau “team_B”

Tổng hợp lại, kết quả cuối cùng sẽ như thế này

"Team A wins"
0

Thêm kết quả của một vòng lặp vào một đối tượng trong R

Bây giờ chúng tôi đã viết ra vòng lặp của mình, chúng tôi sẽ muốn lưu trữ từng kết quả của mỗi lần lặp trong vòng lặp của chúng tôi. Trong bài đăng này, chúng tôi sẽ lưu trữ các giá trị của mình trong một vectơ, vì chúng tôi đang xử lý một loại dữ liệu duy nhất

Như bạn có thể đã biết từ khóa học Nguyên tắc cơ bản về R của chúng tôi, chúng ta có thể kết hợp các vectơ bằng cách sử dụng hàm

"Win"
"Win"
"Win"
5. Chúng tôi sẽ sử dụng cùng một phương thức để lưu trữ kết quả của vòng lặp for của chúng tôi

Chúng ta sẽ bắt đầu với vòng lặp này

"Team A wins"
2

Bây giờ, giả sử chúng ta muốn lấy tổng số bàn thắng ghi được trong một trận đấu và lưu trữ chúng trong vectơ. Bước đầu tiên chúng ta cần làm là cộng từng điểm từ danh sách các danh sách lại với nhau, chúng ta có thể thực hiện việc này bằng cách sử dụng hàm

"Win"
"Win"
"Win"
6. Chúng ta sẽ lặp đoạn mã của mình thông qua ________ 59 _______7 để tính tổng số bàn thắng trong mỗi trận đấu

"Team A wins"
3

Nhưng chúng tôi vẫn chưa thực sự lưu tổng số bàn thắng ở bất cứ đâu. Nếu chúng tôi muốn lưu tổng số bàn thắng cho mỗi trận đấu, chúng tôi có thể khởi tạo một vectơ mới và sau đó nối từng phép tính bổ sung vào vectơ đó, như vậy

"Team A wins"
4

Sử dụng câu lệnh if-else trong vòng lặp for trong R

Bây giờ chúng ta đã học về if-else trong R và vòng lặp for trong R, chúng ta có thể đưa mọi thứ lên cấp độ tiếp theo và sử dụng câu lệnh if-else trong vòng lặp for để cung cấp cho chúng ta kết quả của nhiều kết quả phù hợp

Để kết hợp hai cấu trúc điều khiển, chúng tôi sẽ đặt một cấu trúc điều khiển ở giữa dấu ngoặc _______33_______1 của cấu trúc điều khiển khác

Chúng tôi sẽ bắt đầu với các kết quả trận đấu này cho đội_A

"Team A wins"
5

Sau đó, chúng tôi sẽ tạo một vòng lặp for để lặp qua nó

"Team A wins"
6

Lần này, thay vì in kết quả của chúng ta, hãy thêm câu lệnh if-else vào vòng lặp for

Trong kịch bản của chúng tôi, chúng tôi muốn chương trình của mình in ra đội A thắng hay thua trò chơi. Giả sử mục tiêu của Đội A là mục tiêu đầu tiên của mỗi cặp giá trị và đối thủ là chỉ số thứ hai, chúng ta sẽ cần sử dụng toán tử so sánh để so sánh các giá trị. Sau khi chúng tôi thực hiện so sánh này, nếu điểm của đội_A cao hơn, chúng tôi sẽ in ra “Thắng”. Nếu không, chúng tôi sẽ in “Thua”

Khi lập chỉ mục cho biến lặp có thể khớp, chúng ta có thể sử dụng

"Win"
"Win"
"Win"
1 hoặc
"Win"
"Win"
"Win"
0 vì biến có thể lặp là một vectơ, không phải danh sách

"Team A wins"
7
"Win"
"Win"
"Win"

Phá vỡ vòng lặp for trong R

Bây giờ chúng ta đã thêm câu lệnh if-else, hãy xem cách dừng vòng lặp for trong R dựa trên một điều kiện nhất định. Trong trường hợp của chúng tôi, chúng tôi có thể sử dụng câu lệnh


teams <- c("team_A","team_B")
for (value in teams){
    print(value)
}
1 để dừng vòng lặp ngay khi chúng tôi thấy Đội A đã thắng một trò chơi

Sử dụng vòng lặp for mà chúng ta đã viết ở trên, chúng ta có thể chèn câu lệnh break bên trong câu lệnh if-else của mình

"Team A wins"
9
team_A <- 1 # Number of goals scored by Team A
team_B <- 3 # Number of goals scored by Team B
if (team_A > team_B){
    print ("Team A will make the playoffs")
}
0

[thrive_leads id=’19015′]

Sử dụng vòng lặp while trong R

Trong bài tập trước, chúng ta đã sử dụng vòng lặp for trong R để lặp lại một đoạn mã cung cấp cho chúng ta kết quả khớp. Bây giờ chúng tôi đã trả về kết quả của từng trận đấu, nếu chúng tôi muốn đếm số trận thắng để xác định xem họ có lọt vào vòng loại trực tiếp thì sao?

Vòng lặp while trong R là anh em họ gần của vòng lặp for trong R. Tuy nhiên, vòng lặp while sẽ kiểm tra một điều kiện logic và tiếp tục chạy vòng lặp chừng nào điều kiện còn đúng. Đây là cú pháp của một vòng lặp while trông như thế nào

team_A <- 1 # Number of goals scored by Team A
team_B <- 3 # Number of goals scored by Team B
if (team_A > team_B){
    print ("Team A will make the playoffs")
}
1

Ở dạng lưu đồ

Bạn có thể có câu lệnh if bên trong vòng lặp for python không?

Nếu điều kiện trong vòng lặp while trong R luôn đúng thì vòng lặp while sẽ là vòng lặp vô hạn và chương trình của chúng ta sẽ không bao giờ ngừng chạy. Đây là điều chúng tôi chắc chắn muốn tránh. Khi viết một vòng lặp while trong R, chúng tôi muốn đảm bảo rằng tại một số điểm, điều kiện sẽ sai để vòng lặp có thể ngừng chạy

Hãy lấy một đội bắt đầu mùa giải mà không có trận thắng nào. Họ sẽ cần thắng 10 trận để lọt vào vòng loại trực tiếp. Chúng ta có thể viết một vòng lặp while để cho chúng ta biết liệu đội có lọt vào vòng loại trực tiếp hay không

team_A <- 1 # Number of goals scored by Team A
team_B <- 3 # Number of goals scored by Team B
if (team_A > team_B){
    print ("Team A will make the playoffs")
}
2
team_A <- 1 # Number of goals scored by Team A
team_B <- 3 # Number of goals scored by Team B
if (team_A > team_B){
    print ("Team A will make the playoffs")
}
3

Vòng lặp của chúng tôi sẽ ngừng chạy khi số lần thắng đạt 10. Lưu ý rằng chúng tôi liên tục thêm 1 vào tổng số tiền thắng, vì vậy cuối cùng, điều kiện thắng < 10 sẽ trả về

team_A <- 1 # Number of goals scored by Team A
team_B <- 3 # Number of goals scored by Team B
if (team_A > team_B){
    print ("Team A will make the playoffs")
}
9. Kết quả là, vòng lặp thoát

Đừng lo lắng nếu toàn bộ quá trình này có vẻ khó khăn, trong khi các vòng lặp trong R cần thời gian để hiểu, nhưng chúng là những công cụ mạnh mẽ khi đã thành thạo. Có rất nhiều biến khác nhau để sắp xếp, nhưng chìa khóa để hiểu vòng lặp while là biết các biến này thay đổi như thế nào mỗi khi vòng lặp chạy

Hãy viết vòng lặp while đầu tiên của chúng ta trong R, đếm Đội A thắng

Sử dụng Câu lệnh if-else trong vòng lặp while trong R

Bây giờ chúng tôi đã in trạng thái của đội khi họ không có đủ chiến thắng, chúng tôi sẽ thêm một tính năng cho biết khi nào họ lọt vào vòng loại trực tiếp

Để làm điều này, chúng ta sẽ cần thêm một câu lệnh if-else vào vòng lặp while của chúng ta. Việc thêm câu lệnh if-else vào vòng lặp while cũng giống như thêm nó vào vòng lặp for trong R, điều mà chúng ta đã thực hiện. Quay trở lại kịch bản của chúng ta khi 10 chiến thắng cho phép Đội A lọt vào vòng loại trực tiếp, hãy thêm điều kiện if-else

Điều kiện if-else sẽ nằm giữa các dấu ngoặc của vòng lặp while, ở chính vị trí mà chúng ta đã đặt nó vào vòng lặp for trước đó

team_A <- 1 # Number of goals scored by Team A
team_B <- 3 # Number of goals scored by Team B
if (team_A > team_B){
    print ("Team A will make the playoffs")
}
4_______0_______5

Phá vỡ vòng lặp while trong R

Giả sử số trận thắng tối đa mà một đội có thể có trong một mùa giải là 15. Để lọt vào vòng loại trực tiếp, chúng tôi vẫn cần 10 trận thắng, vì vậy chúng tôi có thể kết thúc vòng lặp của mình ngay khi Đội A đạt được con số này

Để làm điều này, chúng ta có thể sử dụng một câu lệnh


teams <- c("team_A","team_B")
for (value in teams){
    print(value)
}
1 khác. Một lần nữa, điều này hoạt động theo cùng một cách trong vòng lặp while mà nó thực hiện trong vòng lặp for;

team_A <- 1 # Number of goals scored by Team A
team_B <- 3 # Number of goals scored by Team B
if (team_A > team_B){
    print ("Team A will make the playoffs")
}
6_______0_______7

Trực giác Đằng sau vòng lặp while

Vòng lặp for trong R là vòng lặp mà bạn có thể sẽ xử lý thường xuyên nhất. Nhưng vòng lặp while vẫn hữu ích để biết về

Để phân biệt giữa hai loại vòng lặp này, sẽ rất hữu ích khi nghĩ về vòng lặp for khi xử lý một danh sách công việc. Ý tưởng là bạn có một số lượng công việc nhất định phải hoàn thành và một khi bạn hoàn thành tất cả các công việc của mình, bạn đã hoàn thành. Chìa khóa ở đây là có một số lượng mục mà chúng ta cần lặp qua trong vòng lặp for

Mặt khác, vòng lặp while giống như cố gắng đạt được một cột mốc quan trọng, chẳng hạn như quyên góp số tiền mục tiêu cho một sự kiện từ thiện. Đối với các sự kiện từ thiện, bạn thường biểu diễn và làm những việc để gây quỹ cho mục đích của mình, chẳng hạn như chạy vòng hoặc cung cấp dịch vụ cho mọi người. Bạn thực hiện các nhiệm vụ này cho đến khi đạt được mục tiêu và không rõ ngay từ đầu bạn cần thực hiện bao nhiêu nhiệm vụ để đạt được mục tiêu. Đó là ý tưởng chính đằng sau vòng lặp while. lặp lại một số hành động (đọc. một đoạn mã) cho đến khi một điều kiện hoặc mục tiêu được đáp ứng

Bạn có thể có câu lệnh if bên trong vòng lặp for python không?

Trong khi các vòng lặp đóng vai trò chính trong các tác vụ phân tích nặng như mô phỏng và tối ưu hóa. Tối ưu hóa là hành động tìm kiếm một tập hợp các tham số tối đa hóa hoặc giảm thiểu một số mục tiêu

Trong các tác vụ phân tích dữ liệu khác, như làm sạch dữ liệu hoặc tính toán số liệu thống kê, các vòng lặp không hữu ích lắm. Những nhiệm vụ này hình thành gánh nặng cho những gì bạn gặp phải trong con đường Phân tích dữ liệu trong R và có lẽ là sự nghiệp của bạn, nhưng thật tốt khi biết những công cụ nào có sẵn cho bạn với tư cách là một lập trình viên

Nhận tài nguyên khoa học dữ liệu miễn phí

Đăng ký miễn phí để nhận bản tin hàng tuần của chúng tôi với các liên kết tài nguyên khoa học dữ liệu, Python, R và SQL. Ngoài ra, bạn có quyền truy cập vào nội dung khóa học trực tuyến tương tác miễn phí của chúng tôi

ĐĂNG KÝ

Bước tiếp theo

Trong hướng dẫn này, chúng tôi đã phát triển một câu lệnh if cơ bản thành một chương trình phức tạp hơn để thực thi các khối mã dựa trên các điều kiện logic

Những khái niệm này là những khía cạnh quan trọng của lập trình R và chúng sẽ giúp bạn viết mã mạnh mẽ hơn đáng kể. Nhưng chúng tôi hầu như không làm trầy xước bề mặt sức mạnh của R

Để học cách viết mã R hiệu quả hơn, hãy xem khóa học Trung cấp R của chúng tôi. Bạn có thể viết mã (và kiểm tra mã) ngay trong trình duyệt của mình

Trong khóa học này, bạn sẽ học

  • Làm thế nào và tại sao bạn nên sử dụng các hàm và hàm được vector hóa
  • Cách viết các chức năng của riêng bạn
  • Làm thế nào các gói
    
    teams <- c("team_A","team_B")
    for (value in teams){
        print(value)
    }
    
    5
    
    teams <- c("team_A","team_B")
    for (value in teams){
        print(value)
    }
    
    6 và
    
    teams <- c("team_A","team_B")
    for (value in teams){
        print(value)
    }
    
    7 có thể giúp bạn viết mã hiệu quả hơn và dễ đọc hơn
  • Cách sử dụng gói
    
    teams <- c("team_A","team_B")
    for (value in teams){
        print(value)
    }
    
    8 để thao tác chuỗi

Nói tóm lại, đây là những kỹ năng nền tảng sẽ giúp bạn nâng cấp mã R của mình từ chức năng thành đẹp mắt. Sẵn sàng để bắt đầu?

Nhận tài nguyên khoa học dữ liệu miễn phí

Đăng ký miễn phí để nhận bản tin hàng tuần của chúng tôi với các liên kết tài nguyên khoa học dữ liệu, Python, R và SQL. Ngoài ra, bạn có quyền truy cập vào nội dung khóa học trực tuyến tương tác miễn phí của chúng tôi

ĐĂNG KÝ

người mới bắt đầu for loopfor loopsifif otherTìm hiểu hướng dẫn RrRrstatstutorialHướng dẫn vòng lặp while vòng lặp while

Thông tin về các Tác giả

Charlie Custer

Charlie là sinh viên ngành khoa học dữ liệu và cũng là nhà tiếp thị nội dung tại Dataquest. Trong thời gian rảnh rỗi, anh ấy học đi xe đạp leo núi và làm video về nó

Chúng ta có thể sử dụng == trong vòng lặp for không?

Bạn có thể sử dụng == nhưng bạn có thể lặp lại tối đa một lần.

Bạn có thể đặt câu lệnh if bên trong vòng lặp while không?

Để làm điều này, chúng ta cần thêm câu lệnh if-else vào vòng lặp while . Việc thêm câu lệnh if-else vào vòng lặp while cũng giống như thêm nó vào vòng lặp for trong R, điều mà chúng ta đã thực hiện.

Bạn có thể đặt câu lệnh if bên trong câu lệnh if Python không?

Khoa học dữ liệu thực tế sử dụng Python . Trong tình huống như vậy, bạn có thể sử dụng cấu trúc if lồng nhau .