java学习之路 之 基本语法-程序流程控制-循环结构-嵌套循环练习题

public class LoopTest7 {
	// 打印3*2的矩形	
	public static void main(String[] args) {
		for (int i = 0; i < 3; i++) { // i是循环因子.
			for (int j = 0; j < 2; j++) {
				System.out.print("j:" + j + " "); // 内循环体执行6次 = 3 * 2 = 外循环次数*内循环次数
			}
			System.out.println(); // 这个语句执行3次, 它直接隶属于外循环
		}
	}
}

class Exer14 {
	// 打印20*8的矩形
	public static void main(String[] args) {
		for (int i = 0; i < 20; i++) {
			for (int j = 0; j < 8; j++) {
				System.out.print("*");
			}
			System.out.println();
		}
	}

}

class Exer15 {
	// 打印n*m的矩形
	public static void main(String[] args) {
		int n = Integer.parseInt(args[0]);//从命令行参数获取字符串并转换成int型数据
		int m = Integer.parseInt(args[1]);
		for (int i = 0; i < n; i++) {
			for (int j = 0; j < m; j++) {
				System.out.print("*");
			}
			System.out.println();
		}
	}

}

public class ForTest {
	//打印n*m的空心矩形

	public static void main(String[] args) {
		int n = Integer.parseInt(args[0]);
		int m = Integer.parseInt(args[1]);
		
		for (int i = 0;i < n;i++){
			if (i == 0 || i == (n-1)) {//打印第一行和最后一行
				for (int j = 0;j < m;j++){
					System.out.print("*");
				}
			} else {
				for (int j = 0;j < m;j++) {//打印中间部分
					if (j == 0 || j == (m-1)){
						System.out.print("*");
					}else {
						System.out.print(" ");
					}
				}
			}
			System.out.println();
		}
	}
}

public class LoopTest2 {
	//打印一个三角形
	public static void main(String[] args) {
		for (int i = 0; i < 10; i++) {
			for (int j = 0; j < i; j++) {
				System.out.print("*");
			}
			System.out.println();
		}
	}
}

class LoopTest3 {
	//打印一个倒三角形
	public static void main(String[] args) {
		for (int i = 0; i < 10; i++) {
			for (int j = 0; j < 9 - i; j++) {
				System.out.print("*");
			}
			System.out.println();
		}
	}
}

class LoopTest4 {
	//将上面两个三角形叠在起来
	public static void main(String[] args) {
		for (int i = 0; i < 10; i++) {
			for (int j = 0; j < 2 * i + 1; j++) {
				System.out.print("*");
			}
			System.out.println();
		}
		for (int i = 0; i < 10; i++) {
			for (int j = 0; j < 9 - i; j++) {
				System.out.print("*");
			}
			System.out.println();
		}
	}
	
}
/*
打印输出一个底边长度为9的等腰三角形
4     *			1		0
3    ***		3		1
2   *****		5		2
1  *******		7`		3
0 *********		9		4
*/
class Exer1 {
	
	public static void main(String[] args) {
		int n = Integer.parseInt(args[0]);
		for (int i = 0; i < n; i++) {
			for (int j = 0; j < n - 1 - i; j++) { // 空格
				System.out.print(" ");
			}
			for (int j = 0; j < i * 2 + 1; j++) { // *
				System.out.print("*");
			}
			System.out.println();
		}
	}
}


class LoopTest5 {
	//判断一个数是否是质数  方法1
	public static void main(String[] args) {
		int n = 8; // 判断一个数是否是质数
		// 质数 : 只能被1和自身整数的数
		boolean flag = true; // 假定这个数是质数
		// 只需要在2~n-1中随便找到一个数,能被这个数整除
		for (int i = 2; i < n; i++) { // 2~8
			if (n % i == 0) {
				flag = false;
			}
		}
		if (flag) {
			System.out.println(n + "是质数");
		}
	}
}

class LoopTest6 {
	// 打印输出100以内的所有质数   方法1
	public static void main(String[] args) {
		
		for (int j = 2; j < 100; j++) {
			boolean flag = true; // 假定j是质数
			// 只需要在2~j-1中随便找到一个数,能被j整除
			for (int i = 2; i < j; i++) { // 循环遍历一些数, 遍历多少数取决于j
				if (j % i == 0) { // 找到一个反例,j能被某个数整除,所以j肯定不是质数
					flag = false; // 推翻之前的结论
				}
			}
			if (flag) { // 最后布尔中保存的就是最后结果, 如果为真,表明没有找到反倒, 如果为假,表明找到反例 
				System.out.println(j + "是质数");
			}
		}

	}
}
class Exer2 {
	
	public static void main(String[] args) {
		// 打印100-200之间的所有质数, 并统计个数.
		int count = 0;
		for (int i = 100; i < 200; i++) {
			// 只需要判断i是否是质数
			boolean flag = true;
			for (int j = 2; j < i; j++) {
				if (i % j == 0) {
					flag = false;
				}
			}
			if (flag) {
				System.out.println(i + "是质数");
				count++;
			}
		}
		System.out.println("共有" + count + "个质数");
	}
	
}


class LoopTest8 {
	 // 判断一个数是否是质数 	方法2
	public static void main(String[] args) {
		int n = 6; 
		// 质数 : 只能被1和自身整数的数
		boolean flag = true; // 假定这个数是质数
		// 只需要在2~n-1中随便找到一个数,能被这个数整除
		for (int i = 2; i < n; i++) { // 2~8
			if (n % i == 0) {
				flag = false;
				break;
			}
		}
		if (flag) {
			System.out.println(n + "是质数");
		}
	}
}

class LoopTest9 {
	// 打印输出100以内的5个质数   方法2
	public static void main(String[] args) {
		
		int count = 0;
		for (int j = 2; j < 100; j++) {
			boolean flag = true; // 假定j是质数
			// 只需要在2~j-1中随便找到一个数,能被j整除
			for (int i = 2; i < j; i++) { // 循环遍历一些数, 遍历多少数取决于j
				if (j % i == 0) { // 找到一个反例,j能被某个数整除,所以j肯定不是质数
					flag = false; // 推翻之前的结论
					break; // break默认中断的是离它最近的循环
				}
			}
			if (flag) { // 最后布尔中保存的就是最后结果, 如果为真,表明没有找到反倒, 如果为假,表明找到反例 
				System.out.println(j + "是质数");
				count++;
				if (count == 5) {
					break;
				}
			}
		}

	}
}

class LoopTest10 {
	// 打印输出1000-2000以内的1个质数
	public static void main(String[] args) {
		
		for (int j = 1000; j < 2000; j++) {
			boolean flag = true; // 假定j是质数
			// 只需要在2~j-1中随便找到一个数,能被j整除
			for (int i = 2; i < j; i++) { // 循环遍历一些数, 遍历多少数取决于j
				if (j % i == 0) { // 找到一个反例,j能被某个数整除,所以j肯定不是质数
					flag = false; // 推翻之前的结论
					break; // break默认中断的是离它最近的循环
				}
			}
			if (flag) { // 最后布尔中保存的就是最后结果, 如果为真,表明没有找到反倒, 如果为假,表明找到反例 
				System.out.println(j + "是质数");
				break;
			}
		}

	}
}


class LoopTest13 {
	//打印100以内的质数	方法3
	public static void main(String[] args) {
		l1 : for (int j = 2; j < 100; j++) {
			l2 : for (int i = 2; i < j; i++) { 
				if (j % i == 0) { 
					continue l1; // 一旦找到反例, 认为j肯定不质数,没有必须继续本次循环, 直接判断下一个值
				}
			}
			System.out.println(j + "是质数");
		}
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值