一、嵌套for循环
for循环的应用非常广泛,常见的嵌套for循环有两种:
第一种是内外循环相对独立进行:
这方式中,内部循环进行30次,外部循环也进行30次,相当于外部循环把内部循环的结果打印了30次
for (int i = 0; i <=30; i++) {
for (int j = 0; j <=30; j++) {
System.out.print("*");
}
}
第二种是内循环依赖外循环进行:
由于内部循环的条件为j<=i,此时0<=0,满足循环条件,在这种方式中,内部循环的条件每次都是变化的。因此,当外部循环进行一次时,内部循环进行打印出j中的第一个元素,即打印出一个*。以此类推打印出了j中的所有元素。
for (int i = 0; i <=30; i++) {
for (int j = 0; j <=i; j++) {
System.out.print("*");
}
}
可以看出,在双层for循环中,外循环控制着内部循环执行的次数,而在每一次的外部循环中,其中的内部循环将会完整执行一次。
一道练习题:输入一个字符串, 统计其中数字的个数
提示:
字符串中的字符个数为length()
提取字符串中的字符为charAt()
import java.util.Scanner;
public class NunberSum {
public static void main(String[] args) {
System.out.println("请输入字符串A:");
Scanner sc = new Scanner(System.in);
String A = sc.next();
int count = 0;
for (int i = 0; i < A.length(); i++)
//要注意的是,字符串下标是从0开始,最后一个位置是length-1
{
char AA = A.charAt(i);
if (AA >= '0' && AA <= '9') {
count++;
}
}
System.out.print(count);
sc.close();
}
}
第二道,输入一个字符串, 将它转换为大写形式
import java.util.Scanner;
public class Letters {
public static void main(String[] args) {
System.out.println("请输入字符串A:");
Scanner sc = new Scanner(System.in);
String A = sc.next();
for (int i = 0; i < A.length(); i++) {
char B = A.charAt(i);
if (B >= 97 && B <= 122) {
B -= 32;
System.out.print(B);
continue;
}
System.out.print(B);
}
sc.close();
}
}