
package com.itheima.d5_exception_handle_runtime;import java.util.Scanner;/** * 需求:需要输入一个合法的价格为止 要求价格大于0 */public class Test2 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); double price = 0; while (true) { try { // 把下面代码放到try/catch异常处理代码块中去 System.out.println("请您输入合法的价格"); String priceStr = sc.nextLine(); // nextLine 是输入一行的数据,返回字符串类型 // 转换成double类型的价格 转换valueOf()方法,括号里面接要转换数据类型的字符串 // 要转换引用类型.valueOf(str) 将要转换的字符串,转换成该对应的类型 price = Double.valueOf(priceStr); // 判断价格是否大于0 if (price > 0){ // 如果用户瞎输入,23aaa,会报错,终止 System.out.println("定价:" + price); break; }else { System.out.println("价格必须是正数"); } } catch (NumberFormatException e) { e.printStackTrace(); // 这里拦截到异常会提示错误会进行下面的代码(进行while循环) System.out.println("您输入的代码有误,不规范"); } } }}