4.Java基础多重循环及程序调试练习题

 1.使用双重循环输出九九乘法表

package com.hz;

public class Lianxi {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
			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();
			}
	}

}

 输出结果:

1*1=1	
2*1=2	2*2=4	
3*1=3	3*2=6	3*3=9	
4*1=4	4*2=8	4*3=12	4*4=16	
5*1=5	5*2=10	5*3=15	5*4=20	5*5=25	
6*1=6	6*2=12	6*3=18	6*4=24	6*5=30	6*6=36	
7*1=7	7*2=14	7*3=21	7*4=28	7*5=35	7*6=42	7*7=49	
8*1=8	8*2=16	8*3=24	8*4=32	8*5=40	8*6=48	8*7=56	8*8=64	
9*1=9	9*2=18	9*3=27	9*4=36	9*5=45	9*6=54	9*7=63	9*8=72	9*9=81	

2. 使用循环输出 100、95、90、85.......5 提示:可尝试使用for、while、do-while三种循环实现

package com.hz;

public class Lianxi1 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		for(int i = 100;i>=5;i=i-5) {
			System.out.print(i+" ");
		}
		System.out.println();
		int q = 100;
		while(q>=5) {
			System.out.print(q+" ");
			q=q-5;
		}
		System.out.println();
		int t = 100;
		 do{
			System.out.print(t+" ");
			t=t-5;
		}while(t>=5);
		System.out.println();
	}

}

 运行结果:

100 95 90 85 80 75 70 65 60 55 50 45 40 35 30 25 20 15 10 5 
100 95 90 85 80 75 70 65 60 55 50 45 40 35 30 25 20 15 10 5 
100 95 90 85 80 75 70 65 60 55 50 45 40 35 30 25 20 15 10 5 

 3.输出星期数   从键盘输入一位整数,当输入1~7时,输出“星期一”~“星期日”   输入其他数字时,提示用户重新输入

package com.hz;

import java.util.Scanner;

public class Lianxi2 {
		public static void main(String[] args) {
			Scanner sc = new Scanner(System.in);
			int num ;
			do {
				System.out.println("请输入一个1-7之间的数字,输入0退出程序:");
				num = sc.nextInt();
				if(num==0) {
					System.out.println("程序结束");
					break;
				}
				while(num<1||num>7) {
					System.out.println("你输入的数字不合格,只能输入1-7之间的数字请重新输入:");
					num = sc.nextInt();
				}
				switch(num) {
				case 1:
					System.out.println("星期一");
					break;
				case 2:
					System.out.println("星期二");
					break;
				case 3:
					System.out.println("星期三");
					break;
					
				case 4:
					System.out.println("星期四");
					break;

				case 5:
					System.out.println("星期五");
					break;
				case 6:
					System.out.println("星期六");
					break;
				case 7:
					System.out.println("星期日");
					break;
				}
				
			}while(num != 0);
			sc.close();
		}
}

 运行结果:

请输入一个1-7之间的数字,输入0退出程序:
1
星期一
请输入一个1-7之间的数字,输入0退出程序:
2
星期二
请输入一个1-7之间的数字,输入0退出程序:
3
星期三
请输入一个1-7之间的数字,输入0退出程序:
4
星期四
请输入一个1-7之间的数字,输入0退出程序:
5
星期五
请输入一个1-7之间的数字,输入0退出程序:
0
程序结束

 4。使用双重循环根据用户输入的数字,结果像三角型

package com.hz;

import java.util.Scanner;

public class Lianxi3 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
			Scanner sc = new Scanner(System.in);
			System.out.println("请输入数字");
			int num = sc.nextInt();
			for(int i = 1;i<=num;i++) {
				for(int q = 1;q<=num-i;q++) {
					System.out.print("  ");
				}
				for(int q = 1;q<=i*2-1;q++) {
					System.out.print(i+" ");
				}
				System.out.println();
			}
			
	}

}

 运行结果:

请输入数字
3
    1 
  2 2 2 
3 3 3 3 3 

 5.用户输入账号密码,输入正确,登录成功。输入失败次数不能超过3次,每次提示:您的密码错误,今日还有N次机会。

package com.hz;

import java.util.Scanner;

public class Lianxi12 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入您的您的账号密码");
		for(int i = 1;i <= 3;i++ ) {
		System.out.print("账号:");
		int z = sc.nextInt();
		System.out.println("密码:");
		int m = sc.nextInt();
			if(z==12345 && m==12345) {
			break;
			}else  {
				System.out.println("账号密码错误请重新输入");
				System.out.println("今日还有"+(3-i)+"次机会");
			}	
			if(i==3) {
			System.out.println("您的机会以上限");
			}
		}
	
	}

}

 运行结果:账号12345密码12345

请输入您的您的账号密码
账号:111
密码:
222
账号密码错误请重新输入
今日还有2次机会
账号:111
密码:
111
账号密码错误请重新输入
今日还有1次机会
账号:111
密码:
111
账号密码错误请重新输入
今日还有0次机会
您的机会以上限

6.打印1-100之间13的倍数,使用for循环
for (int i = 1;i <= 100 ;i++ ){
            int num = 0;
            if (i % 13 == 0){
                System.out.println(num = i);
            }
        }

package com.hz;

public class Lianxi4 {
		public static void main(String[] args) {
			for (int i = 1;i <= 100 ;i++ ){
				int num = 0;
				if (i % 13 == 0){
					System.out.println(num = i);
				}
			}

		}
}

 运行结果:

13
26
39
52
65
78
91

2.用*来打印,根据用户输入rows和columns,来打印响应矩形

package com.hz;

import java.util.Scanner;

public class Lianxi5 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
			Scanner sc = new Scanner(System.in);
			System.out.println("请输入数字");
			int num = sc.nextInt();
			if(num<=5) {
				for(int i = 1;i<=num;i++) {
					for(int q = 1;q<=num;q++) {
						System.out.print("*");
					}
					System.out.println();
			    }
			}
			else if(num<=3) {
				
			for(int i = 1;i<=num;i++) {
				for(int q = 1;q<=num-i;q++) {
					System.out.print("  ");
				}
				for(int q = 1;q<=i*2-1;q++) {
					System.out.print("* ");
				}
				System.out.println();
				}
			}
			
	}

}

 运行结果:

请输入数字
3
***
***
***

3.输入三个班,每班10个学生的成绩,求每个班的总分和平均分

package com.hz;

import java.util.*;

public class Lianxi6 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner sc = new Scanner(System.in);
		for(int i = 1;i<=3;i++) {
			double zong = 0,ping = 0;
			System.out.println("请输入第"+i+"班");
			for(int q = 1;q<=10;q++) {
				System.out.println("请输入第"+q+"学生成绩:");
				
				double ban = sc.nextDouble();
				 
				zong = zong+ban;
				ping=zong/10;
			}
			
			
			System.out.println(i+"班总数:"+zong);
			System.out.println(i+"班平均分:"+ping);
			
		}
	}

}

运行结果:有点多,自己试一试

请输入第1班
请输入第1学生成绩:
12
请输入第2学生成绩:
123
请输入第3学生成绩:
12
请输入第4学生成绩:
122
请输入第5学生成绩:
12
请输入第6学生成绩:
12
请输入第7学生成绩:
12
请输入第8学生成绩:
121
请输入第9学生成绩:
31
请输入第10学生成绩:
212
1班总数:669.0
1班平均分:66.9
请输入第2班
请输入第1学生成绩:

4.输入?个班,每个班?个学生的成绩,成绩为负数的不计算在内,求每个班的总分和平均分

package com.hz;

import java.util.*;

public class Lianxi7{

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入多少班");
		int num = sc.nextInt();
		for(int i = 1;i<=num;i++) {
			double zong = 0,ping = 0;
			System.out.println("请输入班级名:");
			String m = sc.next();
			System.out.println("请输入第"+i+"班"+m+"班级多少学生:");

			int x = sc.nextInt();
			for(int q = 1;q<=x;q++) {
				System.out.println("请输入第"+q+"学生成绩:");
			
				double ban = sc.nextDouble();
				
				zong = zong+ban; 
				ping=zong/10;
			}
			
			
			System.out.println(i+"班总数:"+zong);
			System.out.println(i+"班平均分:"+ping);
			
		}
	}

}

运行结果:

请输入多少班
2
请输入班级名:
111
请输入第1班111班级多少学生:
2
请输入第1学生成绩:
12
请输入第2学生成绩:
33
1班总数:45.0
1班平均分:4.5
请输入班级名:
222
请输入第2班222班级多少学生:
1
请输入第1学生成绩:
11
2班总数:11.0
2班平均分:1.1


5.求1~1000以内质数列表
PS:质数是只能被1和自身整除的整数
int i, j;
        for (i = 1; i <= 1000; i++) {
            for (j = 2; j < i; j++) {
                if (i % j == 0)
                    break;
            }

            if (i == j){
                System.out.print(j + " ");
            }

        }

package com.hz;

public class Lianxi8 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int i, j;
        for (i = 1; i <= 1000; i++) {
            for (j = 2; j < i; j++) {
                if (i % j == 0)
                    break;
            }

            if (i == j){
                System.out.print(j + " ");
            }

        }

	}

}

运行结果:

2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199 211 223 227 229 233 239 241 251 257 263 269 271 277 281 283 293 307 311 313 317 331 337 347 349 353 359 367 373 379 383 389 397 401 409 419 421 431 433 439 443 449 457 461 463 467 479 487 491 499 503 509 521 523 541 547 557 563 569 571 577 587 593 599 601 607 613 617 619 631 641 643 647 653 659 661 673 677 683 691 701 709 719 727 733 739 743 751 757 761 769 773 787 797 809 811 821 823 827 829 839 853 857 859 863 877 881 883 887 907 911 919 929 937 941 947 953 967 971 977 983 991 997 

  • 13
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

懒洋洋大魔王

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值