summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormo khan <mo@mokhan.ca>2025-05-30 12:15:28 -0600
committermo khan <mo@mokhan.ca>2025-05-30 12:15:28 -0600
commitd27e12b22d5d50e86b6536b421df0f2da0dfb4f3 (patch)
treef553ebf21a36054e10f05cc0f59342c358c7bdb7
parent9c9446d895141f38abb096c2f3c95068ff152fa9 (diff)
refactor: extract function to enter guess
-rw-r--r--src/main.rs31
1 files changed, 16 insertions, 15 deletions
diff --git a/src/main.rs b/src/main.rs
index 3e4686c..9808ef2 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -6,22 +6,8 @@ fn main() {
println!("Guess the number!");
let secret_number = rand::rng().random_range(1..=100);
- println!("The secret number is: {secret_number}");
-
loop {
- println!("Please input your guess");
-
- let mut guess = String::new();
- io::stdin()
- .read_line(&mut guess)
- .expect("failed to read line");
-
- // let guess: u32 = guess.trim().parse().expect("Please type a number!");
- let guess: u32 = match guess.trim().parse() {
- Ok(num) => num,
- Err(_) => continue,
- };
-
+ let guess: u32 = input_guess();
println!("You guessed: {guess}");
match guess.cmp(&secret_number) {
@@ -34,3 +20,18 @@ fn main() {
}
}
}
+
+fn input_guess() -> u32 {
+ println!("Please input your guess");
+ let mut guess = String::new();
+ io::stdin()
+ .read_line(&mut guess)
+ .expect("failed to read line");
+
+ // let guess: u32 = guess.trim().parse().expect("Please type a number!");
+ let guess: u32 = match guess.trim().parse() {
+ Ok(num) => num,
+ Err(_) => input_guess(),
+ };
+ return guess;
+}