hasNextInt()判断对while循环的影响

  • Post author:
  • Post category:其他


在while或者do-while循环中使用hasNaxtInt(),当输入的值非int数据类型时,会导致程序直接结束,而不是重新循环(详见


Eg


)。如果输入非int数据类型时,在里面添加循环条件成立因素,这会陷入死循环(详见


Eg2


)。使用时要慎重。



Eg:

//输入1——7正确显示数据,其他重新输入,输入0时结束(if+switch)

int csz=0;

String t=””;

do

{


System.out.println(“请输入数字1——7(输入0结束):”);

if(input.hasNextInt()==true) {


csz=input.nextInt();

if(csz>0&&csz<=7) {


switch (csz)

{


case 1:

t=”MON”;

System.out.println(“今天是  “+t);

break;

case 2:

t=”TUE”;

System.out.println(“今天是  “+t);

break;

case 3:

t=”WEB”;

System.out.println(“今天是  “+t);

break;

case 4:

t=”THU”;

System.out.println(“今天是  “+t);

break;

case 5:

t=”FRI”;

System.out.println(“今天是  “+t);

break;

case 6:

t=”SAT”;

System.out.println(“今天是  “+t);

break;

case 7:

t=”SUN”;

System.out.println(“今天是  “+t);

break;

}

}else if (csz!=0&&csz>7) {


System.out.println(“您输入的数字有误,请重新输入!”);

}

}else {


System.out.println(“您输入的数字有误,请重新输入!”);




}

} while (


csz!=0


);

System.out.println(“程序结束!”);



Eg2:

//输入1——7正确显示数据,其他重新输入,输入0时结束(if+switch)

int csz=0;

String t=””;

do

{


System.out.println(“请输入数字1——7(输入0结束):”);

if(input.hasNextInt()==true) {


csz=input.nextInt();

if(csz>0&&csz<=7) {


switch (csz)

{


case 1:

t=”MON”;

System.out.println(“今天是  “+t);

break;

case 2:

t=”TUE”;

System.out.println(“今天是  “+t);

break;

case 3:

t=”WEB”;

System.out.println(“今天是  “+t);

break;

case 4:

t=”THU”;

System.out.println(“今天是  “+t);

break;

case 5:

t=”FRI”;

System.out.println(“今天是  “+t);

break;

case 6:

t=”SAT”;

System.out.println(“今天是  “+t);

break;

case 7:

t=”SUN”;

System.out.println(“今天是  “+t);

break;

}

}else if (csz!=0&&csz>7) {


System.out.println(“您输入的数字有误,请重新输入!”);

}

}else {


System.out.println(“您输入的数字有误,请重新输入!”);



csz=1;



}

} while (


csz!=0


);

System.out.println(“程序结束!”);



版权声明:本文为youmengxiu原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。