import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Scanner;
public class B1031 {
public static void main(String[] args) throws Exception {
BufferedReader rd = new BufferedReader(new InputStreamReader(System.in));
Scanner in = new Scanner(System.in);
int N = in.nextInt();
int []flag = new int[N];
int sum = 0;
int count = 0;
int passed = 0;
for (int i = 0; i < N; i++)
{
flag[i] = 0;
} /*判断每一行是否合格,合格为1, 不合格为0 */
int []weight = {7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2};
char [] ch = {'1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'};
while (count < N)
{
String s = rd.readLine();
for (int x = 0; x < s.length(); x++)
{
/*将含有X的错误身份证号输出*/
if (s.charAt(x) == 'X')
{
System.out.print(s);
break;
}
if (s.length() < 18 || s.length() > 18)
{
System.out.print(s);
break;
}
sum += (s.charAt(x) - '0') * weight[x];
}
if ((s.charAt(17) - '0') == ch[sum % 11] || s.charAt(17) == ch[sum % 11])
{
flag[count] = 1;
}
count++;
}
for (int z = 0; z < N; z++)
{
if (flag[z] != 1)
{
break;
}
else
{
passed++;
}
}
if (passed == N)
{
System.out.print("All passed");
}
in.close();
}
}
debug到rd.readline()无法点击下一步
scanner会阻塞住程序,等待输入,因而无法触发断点,你只要正常输入,再回车就可以了。
关于你的问题,参考这个程序:http://blog.csdn.net/qq_34594236/article/details/51694930
没有输入内容,readline()方法不会执行,输入或不输入按回车才能执行完readline()方法,回车是结束符