import java.io.*;
import java.util.InputMismatchException;
import java.util.Scanner;public class basicType { /**
* @param args
*/
public static void S_equals()
{
String s1="abc",s2="abc";
System.out.println("s1 equals s2 is "+s1.equals(s2));
System.out.println("s1 equals \"abc\" is "+s1.equals("abc"));
System.out.println("\"abc\" equals \"abc\" is "+"abc".equals("abc"));
}
public static void N_scan()
{
int sum=0;
Scanner input=new Scanner(System.in);
System.out.print("input 10 interger number:");
for(int i=0;i<10;i++)
{
int m=0;
try{
m=input.nextInt();
}
catch(InputMismatchException e) //一直在这个地方循环 求解释啊
{
i--;
} sum+=m;
}
System.out.println("sum of the 10 Intergers is:"+sum);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
S_equals();
N_scan();
}}
import java.util.InputMismatchException;
import java.util.Scanner;public class basicType { /**
* @param args
*/
public static void S_equals()
{
String s1="abc",s2="abc";
System.out.println("s1 equals s2 is "+s1.equals(s2));
System.out.println("s1 equals \"abc\" is "+s1.equals("abc"));
System.out.println("\"abc\" equals \"abc\" is "+"abc".equals("abc"));
}
public static void N_scan()
{
int sum=0;
Scanner input=new Scanner(System.in);
System.out.print("input 10 interger number:");
for(int i=0;i<10;i++)
{
int m=0;
try{
m=input.nextInt();
}
catch(InputMismatchException e) //一直在这个地方循环 求解释啊
{
i--;
} sum+=m;
}
System.out.println("sum of the 10 Intergers is:"+sum);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
S_equals();
N_scan();
}}
import java.io.*;
import java.util.InputMismatchException;
import java.util.Scanner;public class BasicType { public static void S_equals()
{
String s1="abc",s2="abc";
System.out.println("s1 equals s2 is "+s1.equals(s2));
System.out.println("s1 equals \"abc\" is "+s1.equals("abc"));
System.out.println("\"abc\" equals \"abc\" is "+"abc".equals("abc"));
} public static void N_scan()
{
int sum=0;
Scanner scanner=new Scanner(System.in);
System.out.print("input 10 interger number like 1,2,3 ...");
String inputStr=scanner.next();
String[] numStr=inputStr.split(",");
for(String s:numStr){
int value=Integer.parseInt(s);
sum=sum+value;
}
// for(int i=0;i<10;i++)
// {
// int m=0;
// try{
// m=input.nextInt();
// }
// catch(InputMismatchException e) //一直在这个地方循环 求解释啊
// {
// i--;
// }
// sum+=m;
// }
System.out.println("sum of the 10 Intergers is:"+sum);
} public static void main(String[] args) {
// TODO Auto-generated method stub
S_equals();
N_scan();
}}
m=input.nextInt();
}
catch(InputMismatchException e) //一直在这个地方循环 求解释啊
{
i--;
}sum+=m;
在sum += m;前少个" ; "
加上就可以了
try{
m=input.nextInt();
}
catch(InputMismatchException e) //一直在这个地方循环 求解释啊
{
i--;
};
sum+=m;
Scanner input=new Scanner(System.in);
hasNextInt()判断是否为整数
如果不是怎么用input.nextInt()读取下一个数
好像从第一次执行下面这段以后,每次循环都会执行下面那段,所以一直循环跳不出来catch(InputMismatchException e) //一直在这个地方循环 求解释啊
{
i--;
}
for (int i = 0; i < 10; i++) {
int m = 0;
try {
m = input.nextInt();
} catch (InputMismatchException e) // 一直在这个地方循环 求解释啊
{
input = new Scanner(System.in);//当发生异常时,new一个新的Scanner对象
i--;
}
sum += m;
}
import java.io.*;
import java.util.InputMismatchException;
import java.util.NoSuchElementException;
import java.util.Scanner;public class basicType { /**
* @param args
*/
public static void S_equals()
{
String s1="abc",s2="abc";
System.out.println("s1 equals s2 is "+s1.equals(s2));
System.out.println("s1 equals \"abc\" is "+s1.equals("abc"));
System.out.println("\"abc\" equals \"abc\" is "+"abc".equals("abc"));
}
public static void N_scan()
{
int sum=0;
for(int i=0;i<10;i++)
{
int m=0;
boolean flag=true;
System.out.print("input an interger:");
while(flag)
{
Scanner input=new Scanner(System.in);
try
{
m=input.nextInt();
flag=false;
}
catch(java.util.InputMismatchException e)
{
System.out.print("wrong!not an interger!enter again:");
flag=true;
}
}
sum+=m;
}
System.out.println("sum of the 10 intergers is:"+sum);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
S_equals();
N_scan();
}}
m=input.nextInt();
}
catch(InputMismatchException e) //一直在这个地方循环 求解释啊
{
i--;
}
因为每次你都做了i--操作,如果有不符合的数(此处即不是int类型),nextInt方法会一直停留在这个不符合的数,同时抛出异常,此时i一直做i--的操作,在for循环中刚i++,现在又i--,相当于i没有变,当然会一直进行循环
楼主应该是逻辑错误,把i--删了或者改了就ok了
这是java API文档中的原话。意思是说,如果nextInt方法没有成功解析出一个整数,那么你的输入不会被忽略。因为它或许能被其它格式解析。
那么你的程序中输入了a后,出现异常,number被赋值100,开始下一次循环,但这时数据缓冲区内你上次输入的a还在,并没有清除,这时继续解析a,还是错误,于是这个过程就一直重复下去了。
现在你要改的是,出现错误把这次的输入清除,只要在catch中,加一句:input.next()就搞定了!
也可以将Scanner写在try里面