System.out.println("输入你要猜的单词");
        ch = s.nextLine().charAt(0);
        for (int i = 0; i < c.length; i++) {
            if (ch == c[i]) {
                System.out.println("第" + (i+1) + "个位置数为" + ch);
            } else {
                System.out.println("没有这个字母");
            }                         
        }将一个字符串放到字符数组里,然后猜,怎么才能使得如果你没猜到,就打印一次 "没有这个字母"。我这样写会循环打印N次。

解决方案 »

  1.   

    你的逻辑有点小问题。for (int i = 0; i < c.length; i++) {
    if (ch == c[i]) {
    System.out.println("第" + (i + 1) + "个位置数为" + ch);
    break;
    } else {
    System.out.println("暂时未找到目标字母");
    }
    if(i==c.length-1){
    System.out.println("搜索完毕,没有这个字母!");
    }
    }
      

  2.   

    不过这样会打印出:暂时未找到目标字母。
    你要是不想打印可以把else去掉。
      

  3.   

    int i=0;
    for(i=0;i< c.length; i++) {
                if (ch == c[i]) {
                    System.out.println("第" + (i + 1) + "个位置数为" + ch);
                    break;
                }
             }
    if(i==c.length){
                System.out.println("没有这个字母!");
            }
      

  4.   


    你有没有想过万一有两个重复的字母怎么处理如:HELLO,第一个就break了
      

  5.   

    确实没考虑过这个问题,因为你说的是:就打印一次 "没有这个字母”。
    boolean exist=false;
    System.out.println("输入你要猜的单词");
    ch = s.nextLine().charAt(0);
    for (int i = 0; i < c.length; i++) {
    if (ch == c[i]) {
    System.out.println("第" + (i + 1) + "个位置数为" + ch);
    exist=true;

    if(!exist&&i==c.length-1){
    System.out.println("搜索完毕,没有这个字母!");
    }
    }