小白学Java代码:流程控制(下)

练习1:使用for循环,输出5遍HelloWorld

class Hello01{
	public static void main(String[] args){
		/*System.out.println("HelloWorld");
		System.out.println("HelloWorld");
		System.out.println("HelloWorld");
		System.out.println("HelloWorld");
		System.out.println("HelloWorld"); */

		/*
			练习1:使用for循环,输出5遍HelloWorld
			下面for代码的执行过程:
				先执行表达式1,完成变量i的初始值,也就是i=1
				然后执行表达式2,完成循环条件判断,其实也就是判断1<=5,结果为true,则执行循环体
				接下来执行循环体,输出:第1遍HelloWorld
				然后执行表达式3,完成变量i的值更改,也就是i=2
				继续执行表达式2,完成循环条件判断,也就是2<=5,结果为true,则继续执行循环
				循环体中输出:第2遍HelloWorld
				然后执行表达式3完成变量值的更改,也就是i=3
				继续执行表达式2完成循环条件判断,其实也就是判断3<=5,结果为true,则执行循环体
				循环体中输出:第3遍HelloWorld
				然后执行表达式3完成变量值的更改,也就是i=4
				继续执行表达式2完成循环条件判断,其实也就是判断4<=5,结果为true,则执行循环体
				循环体中输出:第4遍HelloWorld

				然后执行表达式3完成变量值的更改,也就是i=5
				继续执行表达式2完成循环条件判断,其实也就是判断5<=5,结果为true,则执行循环体
				循环体中输出:第5遍HelloWorld
				
				然后执行表达式3完成变量值的更改,也就是i=6
				继续执行表达式2完成循环条件判断,其实也就是判断6<=5,结果为false,则接收当前整个for循环,执行for循环外面的语句
				
		*/
		for(int i = 1;i <= 5;i++){
			System.out.println("第" + i + "遍HelloWorld");
		}

	}
}

练习2:使用for循环完成,输出10----20中的每个数

class For02{
	public static void main(String[] args){
		//练习2:使用for循环完成,输出10----20中的每个数
		/*for(int i = 10;i <= 20;i++){
			System.out.println(i);
		}*/

		//练习3:使用for循环完成,输出所有的三位数
		//练习4:使用for循环完成,输出1---50中所有的偶数
		//第1种方法:
		/*for(int i = 1;i <= 50;i++){
			//判断,当前变量i的值,如果是偶数则输出
			if(i % 2 == 0){
				System.out.println(i);
			}
		}*/

		//第2种方法:执行速度相对更快或者效率高
		for(int i = 2;i <= 50;i += 2){
			System.out.println(i);
		}

		//练习5:使用for循环完成,输出1001---2000范围内能被19整除的数
		
	}
}

 for循环的注意事项

class For03{
	public static void main(String[] args){
		//注意:1.for循环中的三个表达式都可以省略,但是分号必须编写,则出现死循环也叫做无限循环,在DOS命令窗口中按Ctrl + C强行终止程序运行
		/*for(;;){
			System.out.println("OK");
		}*/

		//注意:2.当省略表达式1,则出现编译错误,解决办法:在循环上面编写表达式1的声明并赋值
		/*int i = 1;
		for(;i <= 5;i++){
			System.out.println(i);
		}*/

		//注意:3.当省略表达式2,则出现死循环也就是无限循环,也就是当表达式2省略时,循环条件默认为true
		/*for(byte i = 1;;i++){
			System.out.println(i);
		}*/

		//注意:4.当省略表达式3,则出现死循环也叫做无限循环,解决办法:将表达式3编写在循环体中的最后一条语句
		/*for(int i = 1;i <= 5;){
			
			System.out.println(i);
			i++;
		}*/

		//注意:5.当在表达式1中声明变量,如果在循环外面使用该变量,则出现编译错误,解决办法:将表达式1编写在循环上面声明,也叫做将表达式1的声明和赋值都编写在循环上面,也就是注意事项2的写法
		int i;
		for(i = 1;i <= 5;i++){
			System.out.println(i);
		}
		System.out.println(i);  //6
	}
}

练习6:使用while循环完成,输出1---5中的每个数

class While04{
	public static void main(String[] args){
		//练习6:使用while循环完成,输出1---5中的每个数
		/*for(int i = 1;i <= 5;i++){
			System.out.println(i);
		}*/

		/*int i = 1;
		while(i <= 5){
			System.out.println(i);
			i++;
		}*/
		
		//练习7:使用while循环完成,输出500---600中的每个数
		//练习8:使用while循环完成,输出11---20之间所有的奇数
		//第1种方法:
		/*int i = 11;
		while(i <= 20){
			//判断当前变量i的值,如果是奇数则输出i的值
			if(i % 2 != 0){
				System.out.println(i);
			}
			i++;
		}*/

		//第2种方法:相对执行速度更快或者效率高
		/*int i = 11;
		while(i <= 20){
			System.out.println(i);
			i += 2;
		}*/

		//以下代码并不能实现练习8的效果,原因:当i的值为12时,循环条件为false,因此就结束while循环
		/*int i = 11;
		while(i <= 20 && i % 2 != 0){
			System.out.println(i);
			i++;
		}*/


		//练习9:使用while循环完成,输出2345----6789范围内能被300整除的数
		int i = 2345;
		while(i <= 6789){
			//判断当前变量i的值,如果能被300整除,则输出当前i的值
			if(i % 300 == 0){
				System.out.println(i);
			}
			i++;
			
		}
	}
}

练习10:使用do while循环完成,输出6---10中的每个数

class DoWhile05{
	public static void main(String[] args){
		//练习10:使用do while循环完成,输出6---10中的每个数
		int i = 6;
		do{
			System.out.println(i);
			i++;
		}while(i <= 10);

		//练习11:使用do while循环完成,输出30----50中的每个数
		//练习12:使用do while循环完成,输出405---555范围内,所有能被18整除的数

	}
}

 练习13:输出如下效果,要求每次输出一个*
            **********
            **********
            **********
            **********

class For06{
	public static void main(String[] args){
		/*
			练习13:输出如下效果,要求每次输出一个*
			**********
			**********
			**********
			**********

			分析得到:1.该题共计要输出40个*,因此按要求则需要编写40个输出语句,则需要使用循环完成
				   2.因为循环次数固定,则建议优先使用for循环完成
		*/
		//第一种方法:使用一个for循环完成
		/*for(int i = 1;i <= 40;i++){
			System.out.print("*");
			//判断,当变量i的值为10 或者i的值为20 或者i的值为30 或者i的值为40,则换一行,其实也就是i的值是10的倍数则换一行
			if(i % 10 == 0){ //条件也可以编写为i == 10 || i == 20 || i == 30 || i == 40
				System.out.println();
			}
		}*/

		/*
			第二种方法:使用双重循环完成
			总结:1.当该题中既有行数也有列数时,则建议使用双重循环
				   2.外层循环控制行数,比如:有4行,则使用i表示,也就是从1---4,则编写为for(int i = 1;i <= 4;i++){}
				   3.内层循环控制每行的列数,比如:有10列,则使用j表示,也就是从1---10,则编写为for(int j = 1;j <= 10;j++){}
		*/
		for(int i = 1;i <= 4;i++){
			//输出一行的10个*
			for(int j = 1;j <= 10;j++){
				System.out.print("*");
			}
			//换一行
			System.out.println();
		}

	}
}

练习14:输入一批整数,计算所有数的和,当输入0时则程序结束

import java.util.*;
class DoWhile07{
	public static void main(String[] args){
		/*
			练习14:输入一批整数,计算所有数的和,当输入0时则程序结束
			分析得到:1.该题求和
				   2.假如输入数0 ,则程序结束,和是0
					 假如输入数10   5   26   -1    0,则程序结束,和是40
					 假如输入数88   0,则程序结束,和是88
					 .......
				   3.因此得到该题的一批整数,并没有要求是多少个
					 也就是说一批整数,也需要一个数一个数的输入
				   4.操作步骤:输入一个整数   判断是否为0    不为0则累加求和
		*/
		int sum = 0; //sum表示存放所有数的和
		do{
			//第一步:键盘输入一个整数,存放在变量中
			Scanner input = new Scanner(System.in);
			System.out.print("请输入一个整数:");
			int num = input.nextInt();
			//第二步:判断,当前变量num中的值是否为0
			if(num == 0){
				break; //表示中断,当在循环中遇到break,则结束当前整个循环,执行循环外面的语句
			}
			//当没有执行if里面,说明num也就不是0,则累加求和
			sum += num; //sum = 88
		}while(true);
		System.out.println("所有数的和:" + sum);
	}
}

 

class Test02{
	public static void main(String[] args){
		for(int i = 1;i <= 40;i++){
			System.out.print("*");
			if(i % 10 == 0){//i == 10 || i == 20 || i == 30 || i == 40
				System.out.println();
			}
		}
		System.out.println();
		for(int i = 1;i <= 4;i++){
			for(int j = 1;j <= 10;j++){
				System.out.print("*");
			}
			System.out.println();
		}
	}
}
import java.util.Scanner;
class Test03{
	public static void main(String[] args){
		Scanner scan = new Scanner(System.in);
		boolean b = true;
		int sum = 0;
		do{
			System.out.print("请输入整数:");
			int num = scan.nextInt();
			sum += num;
			if(num == 0){
				b = false;
			}
		}while(b);
		System.out.println(sum);
	}
}

3.假如张三进行Java机试题测试,
             如果得100分则奖励一台笔记本电脑,
             如果得90分以上则奖励一个移动硬盘,
             如果得60分以上则奖励一个鼠标,
             否则没有任何奖励
             要求:使用两种方法完成(多重if和switch case两种方法完成)

import java.util.*;
class Homework03{
	public static void main(String[] args){
		/*3.假如张三进行Java机试题测试,
			 如果得100分则奖励一台笔记本电脑,
			 如果得90分以上则奖励一个移动硬盘,
			 如果得60分以上则奖励一个鼠标,
			 否则没有任何奖励
			 要求:使用两种方法完成(多重if和switch case两种方法完成)
		*/
		//第一步:键盘输入张三的成绩,存放在变量中
		Scanner input = new Scanner(System.in);
		System.out.print("请输入张三的成绩:");
		double score = input.nextDouble();
		//第二步:判断成绩score变量中的值是否在[0,100]范围内
		//第1种方法:
		/*if(score >= 0 && score <= 100){
			//第三步:判断成绩score中的值,来得到具体的奖励
			if(score == 100){
				System.out.println("奖励笔记本");
			}else if(score >= 90){
				System.out.println("奖励移动硬盘");
			}else if(score >=60){
				System.out.println("奖励鼠标");
			}else{
				System.out.println("对不起没有任何奖励!");
			}
		}else{
			System.out.println("成绩输入有误!");
		}*/

		//第2种方法
		if(score >= 0 && score <= 100){
			switch((int)score / 10){
				case 10:
					System.out.println("奖励笔记本电脑");
					break;
				case 9: //其实也就是在[90,99]
					System.out.println("奖励移动硬盘");
					break;
				case 8:
				case 7:
				case 6:
					System.out.println("奖励鼠标");
					break;
				default:
					System.out.println("对不起没有任何奖励!");
			}
		}else{
			System.out.println("成绩输入有误!");
		}
	}
}

4.打印九九乘法表,并且要求按照格式打印
            1*1=1
            1*2=2    2*2=4
            1*3=3    2*3=6    3*3=9
            ......
            1*9=9    2*9=18    3*9=27    4*9=36    .....    9*9=81

class Homework04{
	public static void main(String[] args){
		/*
			4.打印九九乘法表,并且要求按照格式打印
			1*1=1
			1*2=2	2*2=4
			1*3=3	2*3=6	3*3=9
			......
			1*9=9	2*9=18	3*9=27	4*9=36	.....	9*9=81
			分析得到:1.该题既有行数也有列数,则使用双重循环完成
						2.外层循环控制行数,则使用i表示,比如编写为:
							for(int i = 1;i <= 9;i++){}
						3.内层循环控制每行的列数,则使用j表示
						   第1行共计有1列
						   第2行共计有2列
						   第3行共计有3列
						   ......
						   第9行共计有9列
						   因此得到:列数应该从1到当前行数的值,也就是i
						   for(int j = 1;j <= i;j++){}
		*/
		for(int i = 1;i <= 9;i++){
			for(int j = 1;j <= i;j++){
				System.out.print(j + "*" + i + "=" + i * j + "\t");
			}
			System.out.println();
		}
	}
}

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值