总结:注意一个方法:nextLine();它表示:执行当前行,返回跳过的输入信息。

package com.da;

import java.util.InputMismatchException;
import java.util.Scanner;
//从键盘输入数,判断,是double型则输出。通过循环变量退出do-while循环
//若不是,则系统提示异常,该异常被catch语句捕获。catch语句用来显示数据输入错误提示信息。
//并提示用户重新输入,然后通过循环变量使do-while循环继续执行。 要求用户重新输入
//其中 Scanner中的方法 String nextline()的作用是:
//扫描当前行,并返回跳过的输入信息。由此。。。定是Scanner类的方法 public class h {
public static void main(String[] args) {
Scanner c = new Scanner(System.in);
boolean a = false;
do {
try { System.out.println("请输入数据:");
double x = c.nextDouble();
System.out.println(x);
a = false;
} catch (InputMismatchException A) {
System.out.println("数据输入无效,请重新输入");
System.out.println("message:" + A);
// a=true;//如果省略了这最关键的一步,
// 那么程序无法继续执行,它会终止。因为异常虽被捕捉了。但是还是错误的
// 所以这里要修改默认值,即让程序继续执行下去,让循环变量为true,使之有效!!!
String b = c.nextLine();// nextline()方法是扫描器执行当前行,返回跳过的输入信息是Scanner类的方法
} } while (a = true);// 我在这里修改了下程序。本来这里是对于正确输入是退出(while(a);),不会继续下去。
}// a=true时。它在do循环外面。所以无论输入对否。它会继续循环下去。干嘛输入对了一次就不输入了。
}// 程序的运行也会有偶然性。有时候,有的bug在中间,而不是开始的时候。多验证输入几次,增强准确性
//
请输入数据:
t
数据输入无效,请重新输入
message:java.util.InputMismatchException
请输入数据:
tr
数据输入无效,请重新输入
message:java.util.InputMismatchException
请输入数据:
34
34.0
请输入数据:
t
数据输入无效,请重新输入
message:java.util.InputMismatchException
请输入数据:
w
数据输入无效,请重新输入
message:java.util.InputMismatchException
请输入数据:
g
数据输入无效,请重新输入
message:java.util.InputMismatchException
请输入数据:
a
数据输入无效,请重新输入
message:java.util.InputMismatchException
请输入数据:

  

java代码异常处理篇-----循环的更多相关文章

  1. 新年在家学java之基础篇--循环&数组

    因为“野味肺炎”的肆虐,过年被迫宅家只能吃了睡.睡了吃.这么下次只能长膘脑子空空,不如趁此机会重新学习java基础,为日后做铺垫~ 循环结构: 几种循环:for(::),while(){},do{}w ...

  2. java代码输入流篇2

    总结: 方法.和之前的有不同,但是名字太长了+++++ package com.aini; import java.io.*; public class ghd { public static voi ...

  3. java代码异常篇

    总结:掌握流.缓冲区类的方法 package com.b; import java.io.BufferedReader; import java.io.File; import java.io.Fil ...

  4. java代码异常处理

    总结:运用throw和throws抛出异常,在哪一种情况下该怎么抛出异常.重要 package com.b; //异常中throwe和throws的用法 public class yz { publi ...

  5. Java【第九篇】异常处理

    异常概述 介绍 任何一种程序设计语言设计的程序在运行时都有可能出现错误,例如除数为0,数组下标越界,要读写的文件不存在等等.捕获错误最理想的是在编译期间,但有的错误只有在运行时才会发生.对于这些错误, ...

  6. JVM学习第一篇思考:一个Java代码是怎么运行起来的-上篇

    JVM学习第一篇思考:一个Java代码是怎么运行起来的-上篇 作为一个使用Java语言开发的程序员,我们都知道,要想运行Java程序至少需要安装JRE(安装JDK也没问题).我们也知道我们Java程序 ...

  7. Java 动态打印菱形代码之for循环的使用

    1.自定义空心菱形 void PrintRhombus() { int i, j; int s = 4; for (i = 1; i < 2 * (s + 1); i++) { if (i &l ...

  8. 【原创】怎样才能写出优雅的 Java 代码?这篇文章告诉你答案!

    本文已经收录自 JavaGuide (59k+ Star):[Java学习+面试指南] 一份涵盖大部分Java程序员所需要掌握的核心知识. 本文比较简短,基本就是推荐一些对于写好代码非常有用的文章或者 ...

  9. 你所不知道的库存超限做法 服务器一般达到多少qps比较好[转] JAVA格物致知基础篇:你所不知道的返回码 深入了解EntityFramework Core 2.1延迟加载(Lazy Loading) EntityFramework 6.x和EntityFramework Core关系映射中导航属性必须是public? 藏在正则表达式里的陷阱 两道面试题,带你解析Java类加载机制

    你所不知道的库存超限做法 在互联网企业中,限购的做法,多种多样,有的别出心裁,有的因循守旧,但是种种做法皆想达到的目的,无外乎几种,商品卖的完,系统抗的住,库存不超限.虽然短短数语,却有着说不完,道不 ...

随机推荐

  1. mongodb $where 查询中的坑

    mongodb 查询中坑就是数字开头的字段不能用点号,只能用[""].例如: 即:db.datas.find({$where:"this['54bcfc6c329af61 ...

  2. maven junit.framework不存在问题解决

    问题 在使用maven进行一个工程的编译,已加入junit包的依赖,编译的时候却总是报“junit.framework不存在”错误. pom.xml中junit包加入如下: <dependenc ...

  3. Spring插件的安装与卸载---笔记

    Spring插件的安装 1.在eclipse中选择工具菜单Help--->Install New Software选项 2.点击Add, 3.选择插件地址或输入网址,点击  OK  . http ...

  4. 基于主主复制的mysql双机热备+keepalived实现高可用性

  5. UOJ66 新年的巧克力棒

    本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000 作者博客:http://www.cnblogs.com/ljh2000-jump/ ...

  6. UVA 11827 水

    题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem ...

  7. 使用java代码打开特定网页

    第一种方法的代码如下所示: import java.io.File; public class Test04 { public static void main(String[] args) { // ...

  8. phalcon: 开启模板缓存和缓存路径

    /** * 设置view */ $di->set('view', function () use ($config) { $view = new \Phalcon\Mvc\View(); $vi ...

  9. JavaScript的DOM操作(节点操作)

    创建节点createElement()var node = document.createElement(“div”);没什么可说的,创建一个元素节点,但注意,这个节点不会被自动添加到文档(docum ...

  10. vs2012 sln和.vcxproj有什么区别

    sln是解决方案的配置,主要是管理这个方案里的多个vcxprojvcxproj是工程的配置文件,管理工程中细节比如包含的文件,引用库等一般没有sln,也可以直接打开vcxproj,也可以重新生成sln ...