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("你被淘汰了,下次要努力哦~");
        }
    }
}</pre>

Homework01.java

import java.util.Scanner;
public class Homework {

    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);	

    }
}

MulForExercise02.java

public class MulForExercise02{
    public static void main(String[] args){
        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("");
        }
    }
}

Stars.java

public class Stars{
    public static void main(String[] args){
        //思路分析
        //化繁为简
        //1.先打印一个矩形
        /*
        *****
        *****
        *****
        *****
        *****
    	for(int i = 1;i <= 5;i++){
    		System.out.println("*****");
    	}	
        2.打印半个金字塔
        *     //第一层有1个*
        **    //第二层有2个*
        ***   //第三层有3个*
        ****  //第四层有4个*
        ***** //第五层有5个*
        
        for(int i = 1;i <= 5;i++){
            for(int j = 1;j <= i;j++){
                System.out.print("*");
            }
            System.out.println("");
        }
        3.打印整个金字塔
            *     //第一层有1个* 2*1-1 有4个(总层数-1)空格
           ***    //第二层有3个* 2*2-1 有3个(总层数-2)空格
          *****   //第三层有5个* 2*3-1 有2个(总层数-3)空格
         *******  //第四层有7个* 2*4-1 有1个(总层数-4)空格
        ********* //第五层有9个* 2*5-1 有0个(总层数-5)空格
 		for(int i = 1;i <= 5;i++){
            for(int k = 1;k <= 5 - i;k++){
                System.out.print(" ");
            }
            for(int j = 1;j <= 2*i-1;j++){
                System.out.print("*");
            }
            System.out.println("");
        }	
        4.打印空心的金字塔[最难的]
            *     //第一层有1个*  当前行的第一个位置*,最后一个位置也是*
           * *    //第二层有2个*  当前行的第一个位置*,最后一个位置也是*
          *   *   //第三层有2个*  当前行的第一个位置*,最后一个位置也是*
         *     *  //第四层有2个*  当前行的第一个位置*,最后一个位置也是*
        ********* //第五层有9个*  全部输出*		       		
        
        for(int i = 1;i <= 5;i++){
            for(int k = 1;k <= 5 - i;k++){
                System.out.print(" ");
            }
            for(int j = 1;j <= 2 * i - 1;j++){
                if(j == 1 || j == 2 * i - 1 || i == 5){
                    System.out.print("*");					
                }else{
                    System.out.print(" ");
                }
            }
            System.out.println(" ");
        }
        */
        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);
        }
    }
}

Break01.java

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.java

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.java

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);		
    }
}
赞(3)

评论 抢沙发

评论前必须登录!

 

LNMP社群 不仅仅是技术

关于我们网站地图