厨师在一张纸上写了一些文本,现在他想知道文本上有多少孔。
  什么是孔?如果您将纸张视为平面,将字母视为平面上的曲线,则每个
  字母将飞机分为几个区域。例如,字母“ A”,“ D”,“ O”,“ P”,“ R”将平面分开
  分成两个区域,所以我们说这些字母每个都有一个孔。同样,字母“ B”有两个孔
  并且诸如“ C”,“ E”,“ F”,“ K”之类的字母没有孔。我们说文字中的孔数
  等于文本字母中的孔总数。帮助厨师确定多少
  文字中有孔。


为什么嵌套循环不单独添加值,而不是全部添加值?

public class Practice{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int totalnumber = sc.nextInt();
        String[] noString = new String[totalnumber];

        for(int i = 0; i < totalnumber; i++){
            //System.out.println("Enter the word for " + i);
            noString[i] = sc.next();
        }

        int totalHole = 0;
        int[] total = new int[totalnumber];

        char[] singleHole = {'A','Q','R','O','P','D'};
        char B = 'B';
        int counter = 0;

        for(int a = 0; a < totalnumber; a++){
            for(int i = 0; i < noString[counter].length();i++){
                for(int j = 0; j < singleHole.length; j++){
                    if(noString[a].charAt(i) == singleHole[j]){
                        totalHole = totalHole + 1;
                    }
                }
                if(noString[a].charAt(i) == B){
                    totalHole = totalHole + 2;
                }
            }
            counter = counter + 1;
            total[a] = totalHole;
            System.out.println(total[a]);
        }
    }
}

最佳答案

for(int a = 0; a < totalnumber; a++){
    int totalHole = 0;

    ...
}


每次启动外循环时,都需要将totalHole重置为0。最好的方法是在循环内移动其声明。

关于java - 为什么嵌套循环不单独添加值,而不是全部添加值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33027362/

10-10 14:56