我要创建一个程序,从用户输入接受10个数字,并且只显示一个数字。例如,如果用户输入数字:1,2,3,3,4,5,6,7,8,9,即使用户输入两次,代码也只会显示一次数字。
在我的教科书和本网站上的论坛中搜索到类似的问题后,我遇到了cannot find the symbol i
错误的问题。
import java.util.Scanner;
public class ArrayWith10Numbers {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int[] myArray = new int[10];
System.out.print("Enter " + myArray.length + " values: ");
for (int i = 0; i < 10; i++); {
myArray[i] = input.nextInt();
}
for(int n = 0; n < 10; n++)
{
System.out.print("myArray["+ (n+1) +"] is : "+ myArray[n]);
}
}
}
如果我的代码存在任何其他问题,请告知我们。我是初学者,但我会尽力学习和提高。谢谢。
答案 0 :(得分:2)
声明结尾处有分号。请删除它。
for (int i = 0; i < 10; i++);
这是固定程序
import java.util.*;
public class ArrayWith10Numbers {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int[] myArray = new int[10];
System.out.print("Enter " + myArray.length + " values: ");
for (int i = 0; i < myArray.length; i++) {
myArray[i] = input.nextInt();
}
Set<Integer> set = new HashSet<>();
for (int i = 0; i < myArray.length; i++) {
if (!set.contains(myArray[i])) {
System.out.println("myArray[" + i + "] is: " + myArray[i]);
set.add(myArray[i]);
}
}
}
}
这是另一个不将输入存储到数组中的程序。
import java.util.*;
public class ArrayWith10Numbers {
public static void main(String[] args) {
final int TOTAL_NUMBERS = 10;
System.out.print("Enter " + TOTAL_NUMBERS + " values: ");
Scanner input = new Scanner(System.in);
Set<Integer> set = new TreeSet<>();
for (int i = 0; i < TOTAL_NUMBERS; i++) {
set.add(input.nextInt());
}
StringBuilder sb = new StringBuilder();
for (int n : set) {
sb.append(n).append(' ');
}
System.out.println("Numbers without duplicates: " + sb);
}
}
数字将按升序打印。如果您希望以与输入相同的顺序显示数字,请将TreeSet
替换为LinkedHashSet
,如同在dumb_terminal的答案中一样。
答案 1 :(得分:1)
使用LinkedHashSet
消除重复项。
public static void main(String [] args){
Scanner input = new Scanner(System.in);
LinkedHashSet<Integer> set = new LinkedHashSet<>();
for (int i = 0 ; i < 10 ; i++){
set.add(input.nextInt());
}
Iterator<Integer> ii = set.iterator();
while(ii.hasNext())
System.out.println(ii.next());
}
答案 2 :(得分:0)
用
替换你的for循环<tr class="<?= (!($_POST["goalsa"] > $_POST["goalsh"])) ? 'green' : (($_POST["goalsa"] > $_POST["goalsh"])? 'red' : '') ?>" />
答案 3 :(得分:0)
有一个';'在“for”语句的末尾,“for”语句有空体,下面的代码与“for”语句没有关系。
{
myArray[i] = input.nextInt();
}
正确的代码是:
for (int i = 0; i < 10; i++)
{
myArray[i] = input.nextInt();
}
您可以使用某些Java IDE,如IntelliJ IDEA,它可以帮助您检查代码并提供提示。
例如:
这将有助于解决将来的类似问题。
答案 4 :(得分:0)
您可以删除第一个for循环中的分号以修复无法找到符号i 问题,使用set 删除重复项,如下所示
for (int i = 0; i < word.length(); i++) {
String currentLetter = String.valueOf(word.charAt(i));
if (!currentLetter.matches("a|e|i|o|u"))
System.out.print(currentLetter);
}