地球自转一周是一天,绕太阳公转一周是年,这便是一种简单的二重循环
多重循环是指一个循环体又包含另外一个完整的循环结构
注意:
各循环可互相嵌套
一般不超过三层
外层循环变量变化一次,内层循环变量要变化一遍。分析问题的时候,搞清楚外层循环和内层循环的作用是非常重要的!
二重循环的应用
打印5*5的正方形
public class Demo1 {
public static void main(String[] args) {
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.print("* ");
}
System.out.println();
}
}
}
打印直角在左下的5*5的等腰直角三角形
public class Demo2 {
public static void main(String[] args) {
for (int i = 0; i < 5; i++) {
for (int j = 0; j <=i; j++) {
System.out.print("* ");
}
System.out.println();
}
}
}
打印直角在左上的5*5的等腰直角三角形
public class Demo3 {
public static void main(String[] args) {
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5-i; j++) {
System.out.print("* ");
}
System.out.println();
}
}
}
输出直角在左下角的九九乘法表
public class Demo4 {
public static void main(String[] args) {
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <=i; j++) {
System.out.print(i+"*"+j+"="+i*j+"\t");
}
System.out.println();
}
}
}
打印平行四边形
public class Demo5 {
public static void main(String[] args) {
for (int i = 0; i < 5; i++) {
for (int j = 1; j <=5-i; j++) {
System.out.print(" ");
}
for (int m = 0; m < 5; m++) {
System.out.print("* ");
}
System.out.println();
}
}
}
打印直角在右上的5*5的等腰直角三角形
public class Demo6 {
public static void main(String[] args) {
for (int i = 0; i < 5; i++) {
for (int j =1; j <=i; j++) {
System.out.print(" ");
}
for (int m = 0; m <5-i; m++) {
System.out.print("* ");
}
System.out.println();
}
}
}
打印直角在右下的5*5的等腰直角三角形
public class Demo7 {
public static void main(String[] args) {
for (int i = 0; i < 5; i++) {
for (int j = 1; j <5-i; j++) {
System.out.print(" ");
}
for (int m = 0; m <=i; m++) {
System.out.print("* ");
}
System.out.println();
}
}
}
输出直角在右下角的九九乘法表
public class Demo8 {
public static void main(String[] args) {
for (int i = 1; i <=9; i++) {
for (int j = 1; j <=9-i; j++) {
System.out.print("\t\t");
}
for (int j = 1; j <=i; j++) {
System.out.print(i+"*"+j+"="+i*j+"\t");
}
System.out.println();
}
}
}
打印等腰三角形
public class Demo9 {
public static void main(String[] args) {
for (int i = 0; i < 5; i++) {
for (int j = 1; j < 5-i; j++) {
System.out.print(" ");
}
for (int j = 1; j <=2*i+1; j++) {
System.out.print("* ");
}
System.out.println();
}
}
}
打印等腰梯形
public class Demo10 {
public static void main(String[] args) {
for (int i = 1; i <= 4; i++) {
for (int j = 1; j <= 4-i; j++) {
System.out.print(" ");
}
for (int m = 1; m <= 2*i+1; m++) {
System.out.print("* ");
}
for (int n = 1; n < 4-i; n++) {
System.out.print(" ");
}System.out.println();
}
}
}
打印菱形
public class Demo11 {
public static void main(String[] args) {
for (int i = 0; i < 5; i++) {
for (int j = 1; j < 5-i; j++) {
System.out.print(" ");
}
for (int j = 1; j <=2*i+1; j++) {
System.out.print("* ");
}
System.out.println();
}
for (int i = 0; i < 4; i++) {
for (int j = 0; j <=i; j++) {
System.out.print(" ");
}
for (int j = 1; j <=2*(4-i)-1; j++) {
System.out.print("* ");
}
System.out.println();
}
}
}
判断2-100之间有多少个素数,并输出所有素数
public class Hw1 {
public static void main(String[] args) {
int num=0;
System.out.println("2到100之间的素数有:");
for (int i = 3; i <100; i++) {
for (int j = 2; j <=i-1; j++) {
if (i%j==0)
break;
if (j==i-1){
System.out.println(i);
num++;
}
}
}
System.out.println("总个数为"+num+"个");
}
}
将一个正整数分解质因数
public class Hw2 {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
System.out.println("请输入一个数");
int num=input.nextInt();
System.out.print(num+"=");
for (int k = 2; k<= num; k++) {
while(num!=k){
if (num%k==0){
System.out.print(k+"*");
num=num/k;
}else break;
}
}
System.out.println(num);
}
}
一个数如果恰好等于它的因子之和,这个数就称为"完数"。 例如6=1+2+3.编程找出1000以内的所有完数
public class Hw3 {
public static void main(String[] args) {
int sum=0;
for (int i = 1; i <= 1000; i++) {
sum=0;
for (int j = 1; j < i; j++) {
sum+=i%j==0?j:0;
}if(sum==i){
System.out.println(i);
}
}
}
}
有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
public class Hw4 {
public static void main(String[] args) {
int num=0;
for (int i = 1; i <= 4; i++) {
for (int j = 1; j <= 4; j++) {
if(i==j)
continue;
for (int m = 1; m <= 4; m++) {
if (i==m||j==m)
continue;
System.out.println(i+""+j+""+m);
num++;
}
}
}
System.out.println("能组成"+num+++"个互不相同且无重复数字的三位数");
}
}