It’s not a bug. It’s a …

Hey, I have to blog about this one. It’s so funny it’s classic!feature.jpg

intrc?i=DRrs5BjZ intrc?i=Adb5bA3W intrc?i=pCciq5cp intrc?i=4DamFweR intrc?i=fEFnmSZ7 intrc?i=2P9Jc2Aa
147559979
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Sure, I understand your question. Here's a possible implementation of the `readPosInt` method in Java that handles the scenario you described: ```java import java.util.InputMismatchException; import java.util.Scanner; public class Main { public static void main(String[] args) { int n = readPosInt("Please enter a positive integer: "); System.out.println("You entered: " + n); } public static int readPosInt(String prompt) { Scanner scanner = new Scanner(System.in); int n = 0; boolean success = false; while (!success) { System.out.print(prompt); try { n = scanner.nextInt(); if (n > 0) { success = true; } else { System.out.println("You must type a positive integer!"); } } catch (InputMismatchException e) { System.out.println("You must type an integer!"); scanner.nextLine(); // consume wrong input } } return n; } } ``` In this implementation, we use a `while` loop to keep trying to read an integer until we succeed. Inside the loop, we print the prompt and attempt to read an integer using `scanner.nextInt()`. If this call throws an `InputMismatchException`, we catch it and print the error message "You must type an integer!" to the user using `System.out.println()`. We also use `scanner.nextLine()` to consume the wrong input typed by the user, so that the input stream is properly cleared and the next call to `scanner.nextInt()` doesn't fail again. If the input is an integer, we check if it's positive and set the `success` flag to `true` if it is. If the input is not positive, we print the error message "You must type a positive integer!" to the user using `System.out.println()`. Finally, if we succeed in reading a positive integer, we return it from the method.

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值