DevOps开发运维
成长之路

Java的控制结构


If01.java

//if的快速入门
import java.util.Scanner;
public class If01 {
	//编写一个main方法
	public static void main(String[] args) {
		//编写一个程序,可以输入人的年龄,如果该同志的年龄大于18岁,
		//则输出“你年龄大于18岁,要对自己的行为负责,送入监狱”
		//思路分析
		//1.接收输入的年龄,应该定义一个Scanner对象
		Scanner myScanner = new Scanner(System.in);
		System.out.println("请输入年龄");
		//2.把年龄保存到一个变量 int age
		int age = myScanner.nextInt();
		//3.使用if 判断,输入对应信息
		if(age > 18) {
			System.out.println("你年龄大于18岁,要对自己的行为负责,送入监狱");
		}
		System.out.println("程序继续...");
	}
}


If02.java

//if-else的快速入门
import java.util.Scanner;
public class If02 {

	public static void main(String[] args) {
		//编写一个程序,可以输入人的年龄,如果该同志的年龄大于18岁,
		//则输出“你年龄大于18岁,要对自己的行为负责,送入监狱”,否则输出“你的年龄不大放过你了”
		//思路分析
		//1.接收输入的年龄,应该定义一个Scanner对象
		Scanner myScanner = new  Scanner(System.in);
		System.out.println("请输入年龄");
		//2.把年龄保存到一个变量 int age
		int age = myScanner.nextInt();
		//3.使用if-else 判断,输入对应信息
		if(age > 18){
			System.out.println("你年龄大于18岁,要对自己的行为负责,送入监狱");
		}else{//双分支
			System.out.println("你的年龄不大放过你了");
		}
	}
}


IfExercise01.java

//单分支和双分支的练习
import java.util.Scanner;
public class IfExercise01 {
	public static void main(String[] args) {
		//编写程序,声明2个double型变量并赋值。
		//判断第一个数大于10.0,且第2个数小于20.0,打印两数之和
		double a = 11.12;
		double b = 18.23;
		if(a > 10.0 && b < 20.0){
			System.out.println("两个数的和是" + (a + b));		
		}
		System.out.println("\n------------------------");
		//定义两个变量int,判断两者的和,是否能被3又能被5整除,打印提示信息
		int num1 = 10;
		int num2 = 5;
		int sum = num1 + num2;
		if(sum % 3 == 0 && sum % 5 == 0){
			System.out.print("和能被3又能被5整除");
		}else{
			System.out.println("和不能被3也不能被5整除");
		}
		System.out.println("\n------------------------");
		//判断一个年份是否是闰年,闰年的条件是符合下面二者之一:
		//(1)年份能被4整除,但不能被100整除;(2)能被400整除
		Scanner myScanner = new Scanner(System.in);
		System.out.println("请输入年份");
		int year = myScanner.nextInt();
		if((year % 4 ==0 && year % 100 != 0) || year % 400 == 0){
			System.out.println(year + "年为闰年");
		}else{
			System.out.println(year + "年不是闰年");
		}
	}
}

 


If03.java

import java.util.Scanner;
public class If03 {
	public static void main(String[] args){
		Scanner myScanner = new Scanner(System.in);
		System.out.println("请输入保国同志的芝麻信用分:");
		//假设信用分数为整数
		//思考输入的不是整数,而是hello...怎么做??可以使用异常处理机制搞定
		int mark = myScanner.nextInt();
		//先对输入的信用分进行一个范围的有效判断1-100,否则提示输入错误
		if(mark >= 1 && mark <= 100){ 
                        if(mark == 100){ 
                                System.out.println("信用极好"); 
                        }else if(mark > 80 && mark <= 99){ 
                                System.out.println("信用优秀"); 
                        }else if(mark >= 60 && mark <= 80){
				System.out.println("信用一般");
			}else{
				System.out.println("信用不及格");
			}
		}else{
			System.out.println("信用分需要在1-100,请重新输入:)");
		}
	}
}


NestedIf.java

import java.util.Scanner;
public class NestedIf {

	public static void main(String[] args) {
		//思路分析
		//1.创建Scanner对象,接收用户输入
		//2.接收成绩保存到 double score
		//3.使用 if-else 判断如果初赛成绩大于8.0进入决赛,否则提示淘汰
		//4.如果进入到决赛,再接收char gender,使用if-else输出信息
		Scanner myScanner = new Scanner(System.in);
		System.out.println("请输入你的成绩:");
		double score = myScanner.nextDouble();
		if(score >= 8.0){
			System.out.println("恭喜你进入决赛!");
			System.out.println("请输入你的性别:");
			char gender = myScanner.next().charAt(0);
			if(gender == '男'){
				System.out.println("你被分到了男子组");
			}else if(gender == '女'){
				System.out.println("你被分到了女子组");
			}else{
				System.out.println("你的性别有误,不能参加比赛");
			}
		}else{
			System.out.println("你被淘汰了,下次要努力哦~");
		}
	}
}


Homework01.java

import java.util.Scanner;
public class Homework01 {

	public static void main(String[] args){
		//思路分析
		//1.淡旺季-if-else
		//2.在旺季中,可以使用多分支处理三种情况
		//3.在淡季中,使用双分支处理两种情况
		Scanner myScanner = new Scanner(System.in);
		System.out.println("请输入月份:");
		int mouth = myScanner.nextInt();
		System.out.println("请输入年龄:");
		int age = myScanner.nextInt();
		if(mouth >= 4 && mouth <= 10){ 
                   System.out.println("这是旺季");
                   if(age >= 18 && age <= 60){
			System.out.println("你是成人,票价为60");
		   }else if(age < 18){ 
                        System.out.println("你是儿童,票价为30"); 
                   }else if(age > 60){
			System.out.println("你是老人,票价为20");
		   }
		}else{
		   System.out.println("这是淡季");
		   if(age >= 18){
			System.out.println("你是成人,票价为40");
		   }else{
			System.out.println("你的票价为20");
		   }
		}
	}
}


Switch01.java

import java.util.Scanner;
public class Switch01 {

	public static void main(String[] args) {
		//思路分析
		//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;
			case 'd' :
				System.out.println("今天是星期四");
				break;	
			case 'e' :
				System.out.println("今天是星期五");
				break;	
			case 'f' :
				System.out.println("今天是星期六");
				break;
			case 'g' :
				System.out.println("今天是星期日");
				break;
			default :
				System.out.println("你输入的字符不正确,没有匹配");
		}
		System.out.println("退出了switch,继续执行程序");
	}
}


SwitchDetail.java

public class SwitchDetail {

	public static void main(String[] args){
		//细节1
		//表达式数据类型,应和case后的常量类型一致。
		//或者是可以自动转成可以相互比较的类型,比如输入的字符,而常量是int
		char c = 'a';
		switch(c) {
			case 'a' :
				System.out.println("ok1");
				break;
			case 'b' :
			// case 20 ://正确:char可以自动转换为int
			// case "hello" ://错误: 不兼容的类型: String无法转换为char
				System.out.println("ok2");
				break;
			default :
				System.out.println("ok3");
		}
		//细节2
		//switch(表达式)中表达式的返回值必须是:(byte,short,int,char,enum,String)
		// double d = 1.1;
		// switch(d) {
		// 	case 1.1 :
		// 		System.out.println("ok1");
		// 		break;
		// 	case  2.1 :
		// 		System.out.println("ok2");
		// 		break;
		// 	default :
		// 		System.out.println("ok3");
		// }
		// 细节3
		// case子句中的值必须是常量(1,'a'),而不能是变量
		// char e = 'a';
		// switch(e) {
		// 	case e ://错误:需要常量表达式
		// 		System.out.println("ok1");
		// 		break;
		// 	// case 'b';
		// 	case 20 ://正确:char可以自动转换为int
		// 	// case "hello" ://错误: 不兼容的类型: String无法转换为char
		// 		System.out.println("ok2");
		// 		break;
		// 	default :
		// 		System.out.println("ok3");
		// }
		// 细节4
		// default子句是可选的,当没有匹配的case时,执行default
		// 如果没有default子句,又没有匹配任何常量,则没有输出
		// 细节5
		// break语句用来在执行完一个case分支后使程序跳出switch语句块
		// 如果没有写break,程序会顺序执行到switch结尾,除非执行到到break
		char f = 'a';
		switch(f) {
			case 'a' :
				System.out.println("ok1");
				// break;
			case 'b' :
				System.out.println("ok2");
				break;
			default :
				System.out.println("ok3");
		}
		System.out.println("退出了switch,继续执行...");
		//输出ok1 ok2 退出了switch,继续执行...
		// char f = 'b';
		// switch(f) {
		// 	case 'a' :
		// 		System.out.println("ok1");
		// 		// break;
		// 	case 'b' :
		// 		System.out.println("ok2");
		// 		break;
		// 	default :
		// 		System.out.println("ok3");
		// }
		// System.out.println("退出了switch,继续执行...");
		//输出ok2 退出了switch,继续执行...
	}
}


SwitchExercise.java

import java.util.Scanner;
public class SwitchExercise {

	public static void main(String[] args){
		//第1题:
		//使用switch把小写类型的char型转为大写(键盘输入)。
		//只转换a,b,c,d,e.其它的输出“other”
		Scanner myScanner= new Scanner(System.in);
		// System.out.println("请输入小写字母:");
		// char letter = myScanner.next().charAt(0);
		// switch(letter){
		// 	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");									

		// }
		// 第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 1 :
		// 		System.out.println("合格");
		// 		break;
		// 	case 0 :
		// 		System.out.println("不合格");
		// 		break;
		// 	// default :
		// 	// 	System.out.println("输入有误");
		// 	}
		// }else{
		// 	System.out.println("成绩不能100");
		// }
		//第3题:
		//根据用于指定月份,打印该月份所属的季节。3,4,5春季,6,7,8夏季
		//9,10,11秋季,12,1,2冬季
		//思路分析
		//使用switch来匹配,使用穿透来完成,比较简洁
		System.out.println("请输入月份:");
		int mouth = myScanner.nextInt();
		switch(mouth){
			case 3 :
			case 4 :
			case 5 :
				System.out.println("春季");
				break;
			case 6 :
			case 7 :
			case 8 :
				System.out.println("夏季");
				break;
			case 9 :
			case 10 :
			case 11 :
				System.out.println("秋季");
				break;
			case 12 :
			case 1 :
			case 2 :
				System.out.println("冬季");
				break;
			default :
				System.out.println("你输入的月份不对");
		}
	}
}


ForDetail.java

//演示for的使用细节
public class ForDetail{

	public static void main(String[] args) {
		//1.循环条件是返回一个布尔值的表达式
		//2.for(;循环判断条件;)中的初始化和变量迭代可以写到其它地方,但是两边分号不能省略
		// int i = 1;
		// for(; i <= 10 ;){
		// 	System.out.println("你好,韩顺平教育" + i);
		// 	i++;
		// }
		// System.out.println("i=" + i);//i=11

		//补充
		// int j = 1;
		// for(;;){//表示无限循环(死循环)
		// 	System.out.println("ok~" + (j++));
		// }
		// -----------------------------
		// 3.循环初始值可以有多条初始化语句,但要求类型一样,并且
		// 中间用逗号隔开,循环变量迭代也可以有多条变量迭代语句,
		// 中间用逗号隔开
		// 使用内存分析法
		int count = 3;
		for(int i = 0,j = 0;i < count;i++,j +=2){
			System.out.println("i=" + i + "j=" +j);
			/*
			i=0j=0
			i=1j=2
			i=2j=4
			 */
		}
	}
}


ForExercise.java

public class ForExercise {

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

	public static void main(String[] args){
		//完成下面的表达式输出
		//化繁为简
		//(1)先输出0-5
		//(2)后面的+是5-i
		//先死后活
		//(1)5替换成变量
		int n = 9;
		for(int i = 0;i <= n;i++){
			System.out.println(i + "+" + (n-i) + "=" + n);
		}
	}
}


While01.java

//while循环的案例
//
public class While01 {

	public static void main(String[] args) {

		//输出10句你好,韩顺平教育
		//
		int i = 1;//循环变量初始化
		while(i <= 10){//循环条件
			System.out.println("你好,韩顺平教育" + i);//执行语句
			i++;//循环变量迭代
		}
		System.out.println("i=" + i);
		System.out.println("退出while循环,继续...");
	}
}


WhileExercise.java

public class WhileExercise {

	public static void main(String[] args) {
		// 1.打印1-100之间所有能被3整除的数
		// int i = 1;
		// int endNum = 100;
		// int b = 4;
		// while(i <= endNum){
		// 	if(i % b == 0){
		// 		System.out.println(i);				
		// 	}
		// 	i++;
		// }
		// 2.打印40-200之间所有的偶数
		int i = 40;
		int j = 200;
		int z = 2;
		while(i <= j){
			if(i % z ==0){
				System.out.println(i);
			}
			i++;
		}
	}
}


DoWhile01.java

public class DoWhile01{

	public static void main(String[] args) {
		//输出10句你好,韩顺平教育
		int i = 1;//循环变量初始化
		do{
			//循环执行语句
			System.out.println("你好,韩顺平教育" + i);
			//循环变量迭代
			i++;
		}while(i <= 10);
		System.out.println("退出...继续执行" + i);//i=11
	}
}


DoWhileExercise.java

public class DoWhileExercise {

	public static void main(String[] args) {

		// int i = 1;
		// do{
		// 	System.out.println(i);
		// 	i++;
		// }while(i <= 100);
		int i = 1;
		int j = 0;
		do{
			j= j + i;
			i++;
		}while(i <= 100);
		
		System.out.println(j);
	}
}
DoWhileExercise01.java
public class DoWhileExercise01 {

	public static void main(String[] args) {
		//统计1--200之间能被5整除但不能被3整除的个数
		//化繁为简
		//(1)使用do-while输出1-200
		//(2)过滤能被5整除但不能被3整除的数%
		//(3)统计满足条件的个数
		//先死后活
		//(1)范围的值1-200做成变量
		//(2)能被5整除但是不能被3整除的,5和3可以改为变量
		int i = 1;
		int count = 0;
		do{
			if(i % 5 == 0 && i % 3 != 0){
				count++;
			}
			i++;
		}while(i <= 200);
		System.out.println(count);
	}
}
DoWhileExercise02.java
import java.util.Scanner;
public class DoWhileExercise02 {

	public static void main(String[] args){
		//如果李三不还钱,则老韩一直使出五连鞭,直到李三说还钱为止
		//[Syste.out.println("老韩问:还钱吗?y/n")] do...while
		//化繁为简
		//(1)不停的问还钱吗
		//(2)使用char answer接收回答,定义一个Scanner对象
		//(3)在do-while的while中判断如果是y就不再循环了
		Scanner myScanner = new Scanner(System.in); 
		char answer = ' ';
		do{
			System.out.println("老韩使出五连鞭");
			System.out.println("老韩问:还钱吗?y/n");
			answer = myScanner.next().charAt(0);
			System.out.println("回答是" + answer);
		}while(answer != 'y');
	}
}


MulFor.java

//双层for
public class MulFor {

	public static void main(String[] args) {

		for(int i = 0;i < 2;i++){
			for(int j = 0;j < 3;j++){
				System.out.println("i=" + i + "j=" + j);
			}
		}
	}
}
// i=0j=0
// i=0j=1
// i=0j=2
// i=1j=0
// i=1j=1
// i=1j=2


MulForExercise01.java

import java.util.Scanner;
public class MulForExercise01 {

	public static void main(String[] args){

		//1.统计3个班成绩情况,每个班有5名同学,求出各个班的平均分和所有班级的平均分[学生的成绩从键盘输入]
		//统计3个班的及格人数,每个班有5名学生。
		//
		//思路分析:
		//化繁为简
		//(1)先计算一个班,5个学生的成绩
		//   a.创建一个Scanner对象,接收用户输入
		//   b.得到该班级的平均分,定义一个double sum把该班5个学生的成绩累加起来
		//(2)统计3个班(每个班有5个学生)
		//(3)求出所有班级的平均分
		//   a.定义一个变量,double totalScore,累计所有学生的成绩
		//   b.当多重循环结束后,totalScore / (3 * 5)
		//(4)统计三个班及格人数
		//	 a.定义变量int passNum = 0;
		//	 b.当有一个学生成绩>=60,passNum++
		//(5)优化[效率,可读性,结构]
		Scanner myScanner = new Scanner(System.in);	
		double totalScore = 0;//累计所有学生成绩
		int passSum = 0;//累计及格人数
                int classNum = 3;
                int studentNum = 5;
		for(int grade = 1;grade <= classNum;grade++){
			double sum = 0;
			int passNum = 0;
			for(int count = 1;count <= studentNum;count++){ 
                               System.out.println("请输入第" + grade +"个班第" + count + "个学生的成绩"); 
                               double score = myScanner.nextDouble(); 
                               System.out.println("成绩为" + score); 
                               sum += score; //当有一个学生成绩>60,passNum++
			       if(score >= 60){
					passNum++;
				}
			}	
			//因为sum是5个学生的总成绩
			System.out.print("总分为" + sum);
			System.out.println("平均分为" + (sum / studentNum ));	
			System.out.println("及格人数为" + passNum);	
			totalScore += sum;
			passSum += passNum;	
		}
		//把sum累计到totalScore
		System.out.print("三个班级总分为" + totalScore);
		System.out.println("三个班级平均分为" + (totalScore / (classNum * studentNum)));
		System.out.println("三个班级及格人数为" + passSum);	

	}
}

Stars.java
public class Stars{

	public static void main(String[] args) {
		//思路分析
		//化繁为简
		//1.先打印一个矩形
		/*
		*****
		*****
		*****
		*****
		*****
		2.打印半个金字塔
		*     //第一层有1个*
		**    //第二层有2个*
		***   //第三层有3个*
		****  //第四层有4个*
		***** //第五层有5个*
		3.打印整个金字塔
		    *     //第一层有1个* 2*1-1 有4个空格
	           ***    //第二层有3个* 2*2-1 有3个空格
                  *****   //第三层有5个* 2*3-1 有2个空格
                 *******  //第四层有7个* 2*4-1 有1个空格
                ********* //第五层有9个* 2*5-1 有0个空格
        		  //*的个数2*(层数)-1 ;空格数(总层数-当前层数)
		4.打印空心的金字塔[最难的]
		    *     //第一层有1个*  当前行的第一个位置*,最后一个位置也是*
	           * *    //第二层有2个*  当前行的第一个位置*,最后一个位置也是*
                  *   *   //第三层有2个*  当前行的第一个位置*,最后一个位置也是*
                 *     *  //第四层有2个*  当前行的第一个位置*,最后一个位置也是*
                ********* //第五层有9个*  全部输出*		
		5.先死后活
		层数做成变量 int numberOfLayers 
		*/
		int numberOfLayers = 21;
		for(int totalLevel = 1;totalLevel <= numberOfLayers;totalLevel++){ //totalLevel表示层数
			//在输出*之前,还有空格输出
			for (int space = 1;space <= numberOfLayers - totalLevel;space++){
				System.out.print(' ');
			}

			//控制打印每层的*的个
			for(int starsNum = 1;starsNum <= 2 * totalLevel - 1;starsNum++){
				//当前行的第一个位置时*,最后一个位置也是*,最后一层全部输出*
				if(starsNum == 1 || starsNum == 2 * totalLevel - 1 || totalLevel == numberOfLayers){
					System.out.print("*");						
				}else{
					System.out.print(" ");
				}
		
			}
			//每打印完一层的*就换行
			System.out.println("");
		}
	}
}

Test.java
public class Test {

	public static void main(String[] args) {
		for(int i = 0;i <= 10;i++){
			System.out.println((int)(Math.random() * 100) + 1);
		}
	}
}

public class Break01{

	public static void main(String[] args){

		//测试代码
		for(int i = 0; i < 10;i++){
			if(i == 3){
				break;
			}System.out.println("i=" + i);
		}
		System.out.println("退出for循环,继续执行...");

		//...
		
	}
}
//输出结果
//i=0
//i=1
//i=2
//退出for循环,继续执行...


BreakDetail

public class BreakDetail {

	public static void main(String[]args){
		abc1:
		for(int j = 0;j < 4;j++){//外层for
		abc2:
			for(int i = 0;i <10;i++){//内层for
				if(i ==2){
					// break;默认等价于break abc2
					break abc1; 
				}
				System.out.println("i=" + i);
			}
		}
	}
}
//break;结果:
//i=0
//i=1
//i=0
//i=1
//i=0
//i=1
//i=0
//i=1
//break abc1;结果:
//i=0
//i=1


BreakExercise.java

public class BreakExercise {

	public static void  main(String[] args) {
		//1)1-100以内的数求和,求出当和第一次大于20的当前数[for + break]
		//思路分析
		//1.循环1-100,求和sum
		//2.当sum > 20时,记录下当前数,然后break
		//3.在for循环外部,定义变量n,把当前i赋给n
		int sum = 0;
		int n = 0;
		for(int i =1;i <= 100;i++){ sum +=i; if(sum >20){
				// System.out.println("sum>20 ,当前i=" + i);//sum>20 ,当前i=6
				n = i;
				break;
			}
		}
		System.out.println("sum>20 ,当前i=" + n);
	}
}
BreakExercise02.java
import java.util.Scanner;
public class BreakExercise02 {

	public static void  main(String[] args) {
		// 实现登录验证,有3次机会,如果用户名为“丁真”,
		// 密码“666”提示登录成功,否则提示还有几次机会,
		// 请使用for+break完成
		// 思路分析
		// 1.创建Scanner对象接收用户输入
		// 2.定义 String name;String passwd;保存用户名和密码
		// 3.循环3次[登录3次],满足条件提前退出
		// 4.顶一个变量 int change 记录有几次登录机会
                // 代码分析比代码实现更重要
		Scanner myScanner = new Scanner(System.in);
		// String name = "";
		// String passwd = "";
		int chance = 3;//登陆一次,就减少一次
		for(int i = 1;i <= 3;i++){
			System.out.println("请输入用户名");
			String name = myScanner.next();
			System.out.println("请输入密码");
			String passwd = myScanner.next();
			//比较输入的名字和密码是否正确
			//补充:字符串内容的比较使用的方法是equals
			if("丁真".equals(name) && "666".equals(passwd)){
				//name.equals("丁真")和"丁真".equals(name)表达意思一致
				//"丁真".equals(name)写法可以避免空指针,推荐选择
				System.out.println("登陆成功");
				break;
			}
			chance--;
			System.out.println("你还有" + chance + "次机会");
		}
	}
}


ContinueDetail.java

public class ContinueDetail {

	public static void main(String[] args){
		label1:
		for(int j = 0;j < 2;j++){
			label2:
			for(int i = 0;i < 4;i++){
				if(i == 2){
					//看看分别输出什么值,并分析
					// continue;
					// continue label2;
					continue label1;
				}
				System.out.println("i = " + i);
			}
		}
	}
}
//continue;结果:
//i=0
//i=1
//i=3
//i=0
//i=1
//i=3
//continue lable2;结果:
//i=0
//i=1
//i=3
//i=0
//i=1
//i=3
//continue label1;结果:
//i=0
//i=1
//i=0
//i=1

Return01.jva
public class Return01{

	public static void main(String[] args){

		for(int i = 1;i <= 5; i++){
			if(i == 3){
				System.out.println("韩顺平教育" + i);
				// break;
				// continue;
				return;//当return用在方法时,表示跳出方法,如果使用在main,表示退出程序
			}
			System.out.println("Hello world!");
		}
		System.out.println("go on...");
	}
}
// ---------------------
//break;结果:
//Hello world!
// Hello world!
// 韩顺平教育3
// go on...
// --------------------- 
// continue;结果:
// Hello world!
// Hello world!
// 韩顺平教育3
// Hello world!
// Hello world!
// go on...
// ---------------------
// return;结果:
// Hello world!
// Hello world!
// 韩顺平教育3


Homework01.java

public class Homework01 {

	public static void main(String[] args) {
		//思路分析
		//1.定义 double money 保存100000
		//2.根据题的要求,我们分析出来有3中情况 
		//money > 50000
		//money >= 1000 && money <=50000
		//money < 1000
		//3.使用多分支if-else if-else
		//4.while+break[money < 1000],同时使用一个变量times来保存通过的路口数 
                //代码实现 
                double money = 100000; 
                int times = 0; 
                while(true){ if(money > 50000){
				money *= 0.95;
			}else if(money >= 1000){
				money = money - 1000;
			}else{//钱不够了
				break;
			}
			times++;
		}
		System.out.println("该人还剩" + money + "元,100000元经过了" + times + "次路口");
	}
}


Homework02.java

import java.util.Scanner;
public class Homework02 {

	public static void main(String[] args) {
		Scanner myScanner = new Scanner(System.in);
		System.out.println("请输入一个整数");
		int i = myScanner.nextInt();
		if(i > 0){
			System.out.println("输出的数为" + i + "大于0");
		}else if(i < 0){
			System.out.println("输出的数为" + i + "小于0");
		}else{
			System.out.println("输出的数为" + i + "等于0");
		}
	}
}
Homework03.java
import java.util.Scanner;
public class Homework03 {

	public static void main(String[] args) {

		Scanner myScanner = new Scanner(System.in);
		System.out.println("请输入一个年份:");
		int year = myScanner.nextInt();
		if(year % 4 == 0 && year % 100 != 0 || year % 400 ==0){
			System.out.println(year + "年是闰年");
		}else{
			System.out.println(year + "年是平年");
		}
	}
}
Homework04.java
import java.util.Scanner;
public class Homework04 {

	public static void main(String[] args) {
		// 思路分析 =>多听,见多识广
		// 1.比如 int n = 153;
		// 2.先得到 n 的百位,十位,个位的数字,
		// 使用if判断他们的立方和是否相等
		// 3.n的百位 = n / 100
		// 4.n的十位 = n % 100 / 10
		// 5.n的个位 = n % 10
		// 6.判断即可
		Scanner myScanner = new Scanner(System.in);
		System.out.println("请输入一个整数:");
		int num = myScanner.nextInt();
		int n1 = num / 100;
		int n2 = num % 100 / 10;
		int n3 = num % 10;
		// int f[]=new int[10];
		// int temp = num;
		// f[0] = temp % 10;
		// temp = temp / 10;
		// f[1] = temp % 10;
		// temp = temp / 10;
		// f[2] = temp % 10;
		if(num >= 100 && num < 1000){
			if(num == n1*n1*n1 + n2*n2*n2 + n3*n3*n3){
				System.out.println("这个数是水仙花数");
			}else{
				System.out.println("这不是一个水仙花数");
			}
		}else{
			System.out.println("这不是一个水仙花数");
		}

	}
}

没有任何内容输出


Homework06.java

public class Homework06 {

	public static void main(String[] args) {
		//思路分析
		//1.先输出1-100所有数
		//2.过滤输出不能被5整除的数(i % 5 != 0)
		//3.每5个一行,使用int count 统计输出的个数
		//count%5=0,就说明输出了5个。这时我们换行符
		int i = 1;
		int count = 0;
		while(i <= 100){
			if(i % 5 != 0){
				count++;
				System.out.print(i + "\t");
				//判断,每满5个,就输出一个换行
				if(count % 5 == 0){
					System.out.println();
				}
			}
			i++;
		}		
	}
}
Homework07.java
public class Homework07 {

	public static void main(String[] args) {

		//考察a-z编码和for循环的综合使用
		//思路分析
		//1.'b'='a'+1;'c'='a'+2
		//2.使用for循环	
		for(char c1 = 'a';c1 <= 'z';c1++){ 
                    System.out.print(c1 + " "); 
                } 
                System.out.println(""); 
                for(char c2 = 'Z';c2 >= 'A';c2--){
			System.out.print(c2 + " ");	
		}
		// int start = (int)('a');
		// int end = (int)('z');
		// int nums = (int)('A');
		// int numd = (int)('Z');
		// for(int i = start;i >= start && i <= end;i++){
		// 	System.out.print((char)i + " ");
		// }
		// System.out.println("");
		// for(int j = numd;j <= numd && j >= nums;j--)
		// 	System.out.print((char)j + " ");

		
	}
}
Homework08.java
public class Homework08 {

	public static void main(String[] args) {

		//求出1-1/2+1/3-1/4+1/5......1/100的和
		//思路分析
		//1. (1/1)-(1/2)+(1/3)-(1/4)...1/100
		//2.一共100个数,分子为1,分母是从1-100
		//3.分母为偶数时,前面符号为-,当分母是奇数是,前面为+
		//4.使用for循环+判断可完成
		//5.把结果存放在double sum
		//6.有一个隐藏的考点:要把公式的分子1写成double 1.0才能得到精确的小数
		//
		// double sum = 0;
		// for(int i = 1;i <= 100;i++){
		// 	if(i % 2 == 0){
		// 		sum -= (1.0 / i);
		// 	}else{
		// 		sum += (1.0 / i);
		// 	}
		// }
		// System.out.println("sum=" + sum);
		// 以下方法为什么不可以??
		//1.加法1+1/3+1/5+1/7
		//3 5 7 9 11 13 15 16
		//2.减法1-1/2-1/4-1/6-...-1
		//2 4 6 8 10 12 14 16
		// double sum = 0;
		// for(int i = 1;i <= 100;i++){
		// sum += (1.0 / (2 * i + 1) - 1.0 / (2 * i));
		// }
		// System.out.println(sum + 1.0);		
	}
}
Homework09.java
public class Homework09 {

	public static void main(String[] args){

		// 求1+(1+2)+(1+2+3)+(1+2+3+4)+...+(1+2+3+...+100)的结果
		//100个1,99个2,98个3...,1个100相加
		//思路分析
		//1.一共有100项相加
		//2.每一项数字都在逐渐增加
		//3.很像一个双层循环
		//i可以表示是第几项,也可以表示当前项的最后一个数
		//使用sum进行累计即可
		int sum = 0;
		for(int i = 1;i <= 100;i++){
			for(int j = 1;j <= i;j++){//内层对1~i进行循环
				sum += j;
			}
		}
		System.out.println("sum=" + sum);
		// int sum = 0;
		// for(int i = 1,j = 100;i <= 100;i++,j--){
		// 	sum += i * j;
		// }
		// System.out.println(sum);		
	}
}
赞(2)

评论 抢沙发

评论前必须登录!

 

LNMP社群 不仅仅是技术

关于我们网站地图