Select Git revision
14_ko.html 7.79 KiB
<!DOCTYPE html>
<html lang="ko">
<head>
<title>Rust 튜토리얼 - 자기주도프로젝트</title>
<meta charset="UTF-8">
<meta content="text/html;charset=utf-8" http-equiv="Content-Type">
<meta content="utf-8" http-equiv="encoding">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=2">
<meta name="keywords" content="Rust, Programming, Learning">
<meta name="description" content="Rust tutorial website based on tour_of_rust by 최석원">
<meta name="theme-color" content="#ff6801"/>
<meta http-equiv="Cache-Control" content="max-age=3600">
<link rel="stylesheet" href="tour.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.7.0/styles/night-owl.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.13.1/css/all.min.css">
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
<link rel="/manifest" href="./site.webmanifest">
<script src="//unpkg.com/@highlightjs/cdn-assets@11.7.0/highlight.min.js"></script>
<script src="./tour.js" defer></script>
<!-- <script>hljs.highlightAll();</script> -->
<script src="./highlight.badge.min.js"></script>
</head>
<body>
<div class="tour">
<div class="header">
<span class="title"><a href="index.html">Rust 튜토리얼</a></span>
<span class="nav">
<span class="toc"><a href="TOC_ko.html">목차</a></span>
</div>
<div class="page">
<h1>if, while, for</h1>
<p><strong>반복문과 조건문</strong></p>
<p>조건문과 반복문은 프로그램의 흐름을 제어하는 데 사용되는 기본적인 구조입니다.</p>
<p>Rust에서는 if, while, for 문을 사용하여 조건문과 반복문을 작성할 수 있습니다.</p>
<h2 id="if">if 문</h2>
<p>if 문은 주어진 조건이 참인 경우에만 코드 블록을 실행합니다.</p>
<pre><code class="rust">if 조건 {
// 조건이 참일 때 실행할 코드
}</code></pre>
<h2 id="while">while 문</h2>
<p>while 문은 주어진 조건이 참인 동안 코드 블록을 계속 반복해서 실행합니다.</p>
<pre><code class="rust">while 조건 {
// 조건이 참인 동안 반복할 코드
}</code></pre>
<h2 id="for">for 문</h2>
<p>for 문은 반복 가능한 객체(예: 범위, 벡터 등)를 순회하며 코드 블록을 실행합니다.</p>
<pre><code class="rust">// Range를 사용한 for 문
for 변수 in 시작..끝_미포함 { // range(시작, 끝)
// 코드 블록
}
for 변수 in 시작..=끝_포함 { // range(시작, 끝 + 1)
// 코드 블록
}</code></pre>
<pre><code class="rust">// Loop 키워드를 사용한 무한 반복
loop {
// 무한 반복할 코드
// 'break'를 사용해 반복을 종료할 수 있음
}</code></pre>
<h2 id="label">레이블(label)</h2>
<p>Rust에서 while, for, loop 문에서 이름을 지정하고 break할 수 있습니다.</p>
<p>레이블은 <code>이름:</code> 형식으로 작성하며, break할 때 <code>break 이름;</code>을 사용합니다.</p>
<p>이렇게 하면 중첩된 반복문에서 특정 반복문을 종료할 수 있습니다.</p>
<pre><code class="rust">// 2 이상의 소수를 찾아 출력하는 프로그램
fn main() {
let mut number = 2;
'search: loop {
let mut is_prime = true;
'check_prime: for i in 2..number {
if number % i == 0 {
is_prime = false;
break 'check_prime;
}
}
if is_prime {
println!("소수 발견: {}", number);
}
number += 1;
if number > 20 {
break 'search;
}
}
}</code></pre>
<p>위 예제 동작 순서</p>
<ul>
<li><code>number</code> 변수를 2로 초기화합니다.</li>
<li><code>search</code> 라는 이름의 loop 문에서 소수를 찾기 시작합니다.</li>
<li><code>check_prime</code> 이라는 이름의 for 문에서 2부터 <code>number - 1</code> 까지 나누어 떨어지는지 확인합니다.</li>
<li>만약 나누어 떨어진다면, <code>is_prime</code> 변수를 false로 설정하고 <code>check_prime</code> 레이블을 사용하여 for 문을 빠져나옵니다.</li>
<li><code>is_prime</code> 이 true인 경우, 소수를 발견했으므로 해당 숫자를 출력합니다.</li>
<li><code>number</code> 를 1 증가시키고, <code>number</code> 가 20보다 크면 <code>search</code> 레이블을 사용하여 loop 문을 빠져나옵니다.</li>
</ul>
<div class="bottomnav">
<span class="back"><a href="13_ko.html" rel="prev">❮ 이전</a></span>
<span class="next"><a href="15_ko.html" rel="next">다음 ❯</a></span>
</div>
</div>
<div class="code">
<iframe id="rust-playground" width="100%" src="https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&code=%23%5Ballow%28unused_assignments%29%5D%0A%0Afn+main%28%29+%7B%0A++++%2F%2F+%EB%A0%88%EC%9D%B4%EB%B8%94%EC%9D%84+%EC%82%AC%EC%9A%A9%ED%95%9C+while+%EB%AC%B8+%EC%98%88%EC%A0%9C%0A++++let+mut+x+%3D+0%3B%0A++++let+mut+y+%3D+0%3B%0A%0A++++%27outer_while%3A+while+x+%3C+5+%7B%0A++++++++y+%3D+0%3B%0A%0A++++++++while+y+%3C+5+%7B%0A++++++++++++if+x+*+y+%3E+10+%7B%0A++++++++++++++++println%21%28%22%EC%A1%B0%EA%B1%B4+%EB%A7%8C%EC%A1%B1%3A+x%3D%7B%7D%2C+y%3D%7B%7D%22%2C+x%2C+y%29%3B%0A++++++++++++++++break+%27outer_while%3B%0A++++++++++++%7D%0A++++++++++++y+%2B%3D+1%3B%0A++++++++%7D%0A%0A++++++++x+%2B%3D+1%3B%0A++++%7D%0A%0A++++%2F%2F+%EB%A0%88%EC%9D%B4%EB%B8%94%EC%9D%84+%EC%82%AC%EC%9A%A9%ED%95%9C+for+%EB%AC%B8+%EC%98%88%EC%A0%9C%0A++++%27outer_for%3A+for+x+in+0..5+%7B%0A++++++++for+y+in+0..5+%7B%0A++++++++++++if+x+*+y+%3E+10+%7B%0A++++++++++++++++println%21%28%22%EC%A1%B0%EA%B1%B4+%EB%A7%8C%EC%A1%B1%3A+x%3D%7B%7D%2C+y%3D%7B%7D%22%2C+x%2C+y%29%3B%0A++++++++++++++++break+%27outer_for%3B%0A++++++++++++%7D%0A++++++++%7D%0A++++%7D%0A%0A++++%2F%2F+%EB%A0%88%EC%9D%B4%EB%B8%94%EC%9D%84+%EC%82%AC%EC%9A%A9%ED%95%9C+loop+%EB%AC%B8+%EC%98%88%EC%A0%9C%0A++++let+mut+x+%3D+0%3B%0A++++let+mut+y+%3D+0%3B%0A%0A++++%27outer_loop%3A+loop+%7B%0A++++++++y+%3D+0%3B%0A%0A++++++++loop+%7B%0A++++++++++++if+x+*+y+%3E+10+%7B%0A++++++++++++++++println%21%28%22%EC%A1%B0%EA%B1%B4+%EB%A7%8C%EC%A1%B1%3A+x%3D%7B%7D%2C+y%3D%7B%7D%22%2C+x%2C+y%29%3B%0A++++++++++++++++break+%27outer_loop%3B%0A++++++++++++%7D%0A%0A++++++++++++y+%2B%3D+1%3B%0A++++++++++++if+y+%3E%3D+5+%7B%0A++++++++++++++++break%3B%0A++++++++++++%7D%0A++++++++%7D%0A%0A++++++++x+%2B%3D+1%3B%0A++++++++if+x+%3E%3D+5+%7B%0A++++++++++++break%3B%0A++++++++%7D%0A++++%7D%0A%7D%0A" scrolling="no" frameborder="no" allowtransparency="true" allowfullscreen="true" sandbox="allow-forms allow-pointer-lock allow-popups allow-same-origin allow-scripts allow-modals" title="Rust Playground" loading="lazy"></iframe>
</div>
</div>
<script>
var pres = document.querySelectorAll("pre>code");
for (var i = 0; i < pres.length; i++) {
hljs.highlightElement(pres[i]);
}
var options = {
loadDelay: 0,
copyIconClass: "far fa-clipboard",
checkIconClass: "fa fa-check text-success",
blogURL: "http://rust-study.ajousw.kr/"
};
window.highlightJsBadge(options);
</script>
<footer>
<p><a target="_blank" rel="noopener" href="https://www.youtube.com/c/SoftwareToolTime">아주대학교 Software Tool Time</a> - Rust 튜토리얼 (Basic)</p>
</footer>
</body>
</html>