Java教程

2021-11-16----韩顺平Java入门第十天

本文主要是介绍2021-11-16----韩顺平Java入门第十天,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

韩顺平Java入门第十天

1.swith分支结构
    基本语法
在这里插入图片描述
    流程图
在这里插入图片描述
    快速入门

//请编写一个程序,该程序可以接收一个字符,
//比如:a,b,c,d,e,f,g a 表示星期一,b 表示星期二 …
import java.util.Scanner; public class Switch01 { 
	//编写一个 main 方法 
	public static void main(String[] args) { 
		/*案例:Switch01.java 请编写一个程序,该程序可以接收一个字符,
		比如:a,b,c,d,e,f,g a 表示星期一,b 表示星期二 … 
		根据用户的输入显示相应的信息.要求使用 switch 语句完成 
		思路分析 1. 接收一个字符 , 创建 Scanner 对象 
		2. 使用 switch 来完成匹配,并输出对应信息 
		代码*/ 
		Scanner myScanner = new Scanner(System.in); 
		System.out.println("请输入一个字符(a-g)"); 
		char c1 = myScanner.next().charAt(0);
		// 
		//在 java 中,只要是有值返回,就是一个表达式 
		switch(c1) { 
			case 'a' :
				System.out.println("今天星期一,猴子穿新衣"); 
				break; 
			case 'b' : 
				System.out.println("今天星期二,猴子当小二"); 
				break; 
			case 'c' : 
				System.out.println("今天星期三,猴子爬雪山.."); 
				break; 
			//..... 
			default: 
				System.out.println("你输入的字符不正确,没有匹配的"); 
		}
		System.out.println("退出了 switch ,继续执行程序"); 
	} 
}

    细节讨论
在这里插入图片描述
课堂练习题:

//1) 使用 switch 把小写类型的 char 型转为大写(键盘输入)。只转换 a, b, c, d, e. 其它的输出 "other"。 
//2) 对学生成绩大于 60 分的,输出"合格"。低于 60 分的,输出"不合格"。
//   (注:输入的成绩不能大于 100), 提示 成绩/60 
//3) 根据用于指定月份,打印该月份所属的季节。
//    3,4,5 春季 6,7,8 夏季 9,10,11 秋季 12, 1, 2 冬季 [课堂练习, 提示 使 用穿透 ]
//    
import java.util.Scanner; 
public class SwitchExercise { 
	//编写一个 main 方法 
	public static void main(String[] args) { 
		//1)
		Scanner myScanner = new Scanner(System.in); 
		System.out.println("请输入一个字符(a-e)"); 
		char c1 = myScanner.next().charAt(0);
		// 
		//在 java 中,只要是有值返回,就是一个表达式 
		switch(c1) { 
			case 'a' :
				System.out.println("A"); 
			break; 
			case 'b' : 
				System.out.println("B"); 
			break; 
			case 'c' : 
				System.out.println("C"); 
			break; 
			case 'd' : 
				System.out.println("D"); 
			break;
			case 'e' : 
				System.out.println("E"); 
			break;
			//..... 
			default: 
				System.out.println("other"); 
		}
		System.out.println("退出了 switch1 ,继续执行程序"); 

		//2)
		//对学生成绩大于 60 分的,输出"合格"。低于 60 分的, 
		//输出"不合格"。(注:输入的成绩不能大于 100), 提示 成绩/60 
		//思路分析 //1. 这道题,可以使用 分支来完成, 但是要求使用 switch 
		//2. 这里我们需要进行一个转换, 编程思路 : 
		// 如果成绩在 [60,100] , (int)(成绩/60) = 1 
		// 如果成绩在 [0,60) , (int)(成绩/60) = 0
		//代码实现 
		System.out.println("请输入成绩");
		double score = myScanner.nextDouble(); 
		//使用 if-else 保证输入的成绩有有效的 0-100 
		//看了当老师的分析和代码演示后,自己一定要独立完成(不看老韩代码,也能写) 
		if( score >= 0 && score <= 100) { 
			switch ((int)(score / 60)) { 
				case 0 : 
					System.out.println("不合格"); 
				break; 
				case 1 : 
					System.out.println("合格"); 
					break; 
					// 
				default : 
				// 
					System.out.println("输入有误");
			} 
			System.out.println("退出了 switch2 ,继续执行程序"); 
		} else { 
			System.out.println("输入的成绩在 0-100"); 
		}

		//3)
		System.out.println("请输入月份(1-12)"); 
		int month = myScanner.nextInt(); 
		switch(month) { 
			case 3 :

			case 4 : 

			case 5 : 
				System.out.println(month + "月份是春季"); 
			break; 

			case 6 : 
			
			case 7: 
			
			case 8: 
				System.out.println(month + "月份是夏季"); 
			break;			
			case 9: 

  			case 10: 
				
			case 11: 
				System.out.println(month + "月份是秋季"); 
			break;			
			case 12: 

			case 1: 
				 			
			case 2: 
				System.out.println(month + "月份是冬季"); 
			break;	
			default: 
				System.out.println("您输入的月份有误"); 
		}
		System.out.println("退出了 switch3 ,继续执行程序");

	} 
}

2.switch 和 if 的比较
    1) 如果判断的具体数值不多,而且符合 byte、 short 、int、 char, enum[枚举], String 这 6 种类型。虽然两个语句都可 以使用,建议使用 swtich 语句。
     2) 其他情况:对区间判断,对结果为 boolean 类型判断,使用 if,if 的使用范围更广。

3.for 循环控制(!!!)
    基本介绍:听其名而知其意,就是让你的代码可以循环的执行。
    基本语法:
在这里插入图片描述
    老韩说明:
        1). for 关键字,表示循环控制 。
        2). for 有四要素:
            (1)循环变量初始化
            (2)循环条件
            (3)循环操作
            (4)循环变量迭代
        3). 循环操作 , 这里可以有多条语句,也就是我们要循环执行的代码 。
        4). 如果 循环操作(语句) 只有一条语句,可以省略 {}, 建议不要省。
    for 循环执行流程分析:
在这里插入图片描述
    注意事项和细节说明:
        1) 循环条件是返回一个布尔值的表达式.
        2) for(;循环判断条件;) 中的初始化和变量迭代可以写到其它地方,但是两边的分号不能省略。
        3) 循环初始值可以有多条初始化语句,但要求类型一样,并且中间用逗号隔开,循环变量迭代也可以有多条变量迭代语句,中间用逗号隔开。
For应用练习:

public class ForExercise { 
	//编写一个 main 方法 
	public static void main(String[] args) { 
		//打印 1~100 之间所有是 9 的倍数的整数,统计个数 及 总和.
		//[化繁为简,先死后活]
		//老韩的两个编程思想(技巧) 
		//1. 化繁为简 : 即将复杂的需求,拆解成简单的需求,逐步完成 编程 = 思想 --练习-> 代码 
		//2. 先死后活 : 先考虑固定的值,然后转成可以灵活变化的值
		//
		//
		//思路分析 
		//打印 1~100 之间所有是 9 的倍数的整数,统计个数 及 总和 
		//化繁为简
		//(1) 完成 输出 1-100 的值 
		//(2) 在输出的过程中,进行过滤,只输出 9 的倍数 i % 9 ==0 
		//(3) 统计个数 定义一个变量 int count = 0; 当 条件满足时 count++; 
		//(4) 总和 , 定义一个变量 int sum = 0; 当条件满足时累积 sum += i; 
		//先死后活 
		//(1) 为了适应更好的需求,把范围的开始的值和结束的值,做出变量 
		//(2) 还可以更进一步 9 倍数也做成变量 int t = 9;
		int count = 0;
		int sum = 0;
		for (int i = 1;i <= 100 ; ) {

			if (i % 9 == 0) {

				System.out.println(i + "可以被9整除"); 

			count++;
			sum += i;
		    }

			i++;
		}

		System.out.println( "9的倍数有"+ count + "个");
		System.out.println("总和是" + sum);
		int j = 0;
		int k = 5;

		for (; k > 0; ) {

			System.out.println(j + "+" + k + "=" + (j + k) ); 
			j++;
			k--;
			//老师的解法:
			// int n = 5; 
			// for( int i = 0; i <= n; i++) { 
			// 	System.out.println(i + "+" + (n-i) + "=" + n); 
			// }
		}
	}
}

4.while 循环控制

    基本语法:
在这里插入图片描述
    while 循环执行流程分析:
在这里插入图片描述
    注意事项和细节说明:
        1) 循环条件是返回一个布尔值的表达式 。
        2) while 循环是先判断再执行语句。

//打印 40—200 之间所有的偶数
//
public class WhileExercise{
	public static void main(String[] args){
		//化繁为简
		//
		//先死后活	
		int start = 40;
		int end = 200;
		int i = start;
		while (i <= 200) {
			if (i % 2 == 0) {
				System.out.println(i + "是" + start + "到" + end  + "之间的偶数");
			}
			i++;
		}
	}
}

5.do-while 循环控制
    基本语法:
        循环变量初始化;
        do{
            循环体(语句);
            循环变量迭代;
        }while(循环条件);
    老韩说明:
        1). do while 是关键字。
        2).也有循环四要素, 只是位置不一样。
        3). 先执行,再判断,也就是说,一定会至少执行一次 。
        4). 最后有一个 分号 ; 。
        5). while 和 do…while 区别举例: 要账。
    do…while 循环执行流程分析:
在这里插入图片描述
    注意事项和细节说明
        1) 循环条件是返回一个布尔值的表达式。
        2) do…while 循环是先执行,再判断, 因此它至少执行一次。

课堂练习题

//
//1) 打印 1—100 
//2) 计算 1—100 的和  
//3) 统计 1---200 之间能被 5 整除但不能被 3 整除的个数
//
public class DoWhileExercise01{
	public static void main(String[] args){
		//化繁为简
		//先死后活
		//1)打印 1—100
		int i = 1;
		do{
			System.out.println(i);
			i++;
		}while (i <= 100); 

		//2)计算 1—100 的和
		int j = 1;
		int sum = 0;
		do{
			sum += i;
			j++;
		}while (j <= 100);
		System.out.println("1到100的和是" + sum);


		//3)统计 1---200 之间能被 5 整除但不能被 3 整除的个数
		int count = 0;
		int k = 1;
		do{
			if (k % 5 == 0 && k % 3 != 0) {
				count++;
			}
			k++;
		}while (k <= 200);
	    System.out.println("1到200之间能被5整除但不能被3整除的个数是" + count);
	}

}

------文章为自学笔记,学习的课程是B站上的韩顺平30天学JAVA,文章标题的天数是自己学习的天数-----

这篇关于2021-11-16----韩顺平Java入门第十天的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!