public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc = new Scanner(System.in); System.out.println("请输入数字个数"); int n = sc.nextInt(); System.out.println("请输入数字"); Scanner ww = new Scanner(System.in); String[] a = new String[n]; for (int i = 1; i <= n; i++) { a[i] = ww.next(); } ttt(); } public static void ttt(int man) { for (int i = 0; i <= man; i++) { if (man == Math.pow(i, 2)) { System.out.println("对"); break; } if(man == i){ System.out.println("错"); } } } }
你全用nextline吧,要不然回车换行会折腾死你
首先看到你的代码长这样就没人想帮你解答了,起码你得整理美观一下吧
其次,从代码上看你写的ttt()调用却没有传参数这是一个错误,你想操作的是int数组却用一个字符串数组,这有点绕呢
实现连续输入你可以用一个while循环语句,条件为true,想跳出来的地方break就行了
可以启两条线程,一条使用 Scanner sc = new Scanner(System.in);来读数据,另一条while循环写数据,使用LinkedBlockingQueue存数据,他是阻塞的
解释见注释
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入数字个数");
int n = sc.nextInt();
System.out.println("请输入数字");
Scanner ww = new Scanner(System.in);
String[] a = new String[n];
for (int i = 0; i < n; i++)//定义数组长度为n,则i从0到n-1;不然数组不够放
{
a[i] = ww.next();
}
//ttt(); //这个函数要传递数值,如ttt(5);
}
public static void ttt(int man) {
for (int i = 0; i <= man; i++)//这里可以判断i<=Math.sqrt(man);减小运算量
{
if (man == Math.pow(i, 2))
{
System.out.println("对");
break;
}
if(man == i){
System.out.println("错");
}
}
}
public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc = new Scanner(System.in); System.out.println("请输入数字个数"); int n = sc.nextInt(); System.out.println("请输入数字"); Scanner ww = new Scanner(System.in); String[] a = new String[n]; for (int i = 1; i <= n; i++) { a[i] = ww.next(); } ttt(); } public static void ttt(int man) { for (int i = 0; i <= man; i++) { if (man == Math.pow(i, 2)) { System.out.println("对"); break; } if(man == i){ System.out.println("错"); } } } }
怎么解啊,真是不会连续输入输出谁帮我解一下