栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

2021-10-14学习JavaDay04

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

2021-10-14学习JavaDay04

JavaDay04

Java环境搭建 JDK下载与安装 卸载原来的环境和配置JDK
  • 删除原来的环境变量,系统–>环境变量–>JAVA_HOME找到值的文件位置–>删除–>再删除环境变量
  • path里删除与 Java相关的bin值
  • dos窗口,测试是否还有Java环境,java -version
安装JDK
  • 搜索JDK8,找到对应版本,同意协议下载安装
  • 安装路径(需要记住),建议安装目录非系统盘
  • 配置环境变量,系统–>环境变量,添加JAVA-HOME–>变量的值为JDK的安装路径–>配置path变量添加bin值,新建%JAVA-HOME%bin,%JAVA-HOME%jrebin(别的版本需要找jre目录)
  • 测试配置环境是否成功,dos窗口,java -version,提示版本号,安装成功
  • 安装notepad++(方便文本记录,好处是比记事本识别程序和颜色提示)
IDEA安装
  • IDE官网:https://www.jetbrains.com/
  • 基础开放环境:eclipse早起开发java的工具
  • 进入官网,选中IntelliJ IDEA,下载安装,安装时注意路径和32/64位的选择
控制流程(条件判断,循环语句) Java的Switch语句
  • Switch相当于if else的另外一种表达式
  • Switch使用范围:byte,short,int,char,string,enum
switch (day){
    case 1:
        System.out.println("星期一");
        break;
    case 2:
        System.out.println("星期二");
        break;
    default:
        System.out.println("其它");
            
}
  • 每一句结尾都要有break;
  • String在java1.7前是不支持的,1.7版本后支持Switch用String,编译后是把String转hash值
  • 使用Switch练习月份是哪个季节
  • switch 后面需要{ }
import java.util.Scanner;
public class Bijiao {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int month = sc.nextInt();
		switch (month){
		case 1:
		case 2:
		case 3:
			System.out.println(month+"月是春季");
			break;
		case 4:
		case 5:
		case 6:
			System.out.println(month+"月是夏季");
			break;
		case 7:
		case 8:
		case 9:
			System.out.println(month+"月是秋季");
		case 10:
		case 11:
		case 12:
			System.out.println(month+"月是冬季");	//打印输出可以直接是“是冬季”
			break;
		default:	//default默认,这里代表其它值或其它情况
			System.out.println("请输入正确的月份");
		}		
	}
}

优化后:

import java.util.Scanner;
public class Bijiao {
	public static void main(String[] args) {
		Scanner s = new Scanner(System.in);
		System.out.println("请输入要识别的月份");
		int month = s.nextInt();
		switch (month){
		case 1:
		case 2:
		case 3:
			System.out.println(month+"月是春天");
			break;
		case 4:
		case 5:
		case 6:
			System.out.println(month+"月是夏天");
			break;
		case 7:
		case 8:
		case 9:
			System.out.println(month+"月是秋天");
			break;
		case 10:
		case 11:
		case 12:
			System.out.println(month+"月是冬天");
			break;
		default:
			System.out.println("请输入正确的月份");
			break;
		}
	}
}
While和do-while循环语句
  • 关键词简介
    while条件为true时,重复执行
    do-while条件为true时,重复执行,至少会执行一次
public class Bijiao {
	public static void main(String[] args) {
		
		int i = 1;
		while(i<7){	//while 表达式成立就会一直循环
			System.out.println(i);
			i++;
		}
        
       //do while 无论是否成立,先执行一次,在进行判断
        //打印1到5
        int i = 1;
        do{
            System.out.println(i);
            i++;
        }while(i<6);
        
	}
}
  • 使用Scanner获取一个整数,然后使用while计算整数的阶乘

  • M的阶乘=M*(M-1)*(M-2)****1

    //联系一个整数的阶乘计算
    import java.util.Scanner;
    public class Bijiao {
    	public static void main(String[] args) {
    		//计算阶乘,N的阶乘=N*(N-1)*(N-2)***1
    		Scanner sc = new Scanner(System.in);//令 sc 是控制台的输入值
    		System.out.println("请输入要计算阶乘的整数");
    		int n = sc.nextInt();//int n 为整数的计算
    		int i = 1; //i=1是计算阶乘到1 才结束计算
    		while(n>0){//n>o,控制台输入的整数>0开始计算循环
    			i*=n;
    			n--;//每次乘法算完后,n自减一次
    		}
    		System.out.println("的阶乘是:"+i);
    	}
    }
    
for循环,和While一样,但表达方式不同

比较for 和while

public class Bijiao {
	public static void main(String[] args) {
		
		//使用while循环打印1-5
		int i = 1;
		while(i<6){
			System.out.println("while循环输出"+i);
			i++;
		}
		
		//使用for 循环打印1-5
		for (int j = 1; j < 6; j++){//for的语句同样有{},
			//与while相比,判断的条件一样,但是不一样的
			System.out.println("for 循环输出的"+j);
		}
	}
}
//天朝有一个乞丐姓洪,去天桥要钱
//第一天要了1块钱
//第二天要了2块钱
//第三天要了4块钱
//第四天要了8块钱
//以此类推
//问题: 洪乞丐干10天,收入是多少?
import java.util.Scanner;
public class Bijiao {
	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);//sc 为识别控制台输入
		System.out.println("请输入乞讨的天数:");
		int day=sc.nextInt();//day=输入的值
		int salary=1;//薪水salary 从第一天开始计算
		int sum=1;//合计sum也是从第一天开始计算
		if(day>0){//if 判断输入的天数是否>o正常值,其它情况else
			for(int i=1;i 
//天朝有一个乞丐姓洪,去天桥要钱
//第一天要了1块钱
//第二天要了2块钱
//第三天要了4块钱
//第四天要了8块钱
//以此类推
//问题: 洪乞丐干10天,收入是多少?
import java.util.Scanner;
public class Bijiao {
	public Bijiao(int day){
		int Money = 0;//每天的收入
		int MoneyAll = 0;//总共的收入
		for (int i = 1;i <= day;i++){//i控制循环,同事也代表天数
			if (i< 2){
				Money = i;
				System.out.println("这是您工作的第"+i+"天,"+"收获"+Money+"元。");
			}else{
				Money = Money * 2;
				System.out.println("这是您工作的第"+i+"天,"+"收获"+Money+"元。");
			}
			MoneyAll += Money;
		}
		System.out.println("您一共工作"+day+"天,"+"总共收获了"+MoneyAll+"元。");
	}
	public static void main(String[] args) {
		Bijiao test = new Bijiao(10);
	}
}
continue,继续下一个循环

实例:如果是双数,后面的代码不执行,直接进行下一个循环

public class Hello {
    public static void main(String[] args) {

        //打印单数
        for (int j = 0; j < 10;j++){
            if (0==j%2)//%2代表余2,是否为双数的判断
                continue;//如果是双数,后面的代码不执行,直接下一个循环

            System.out.println(j);
        }
    }
}
break,结束循环

实例:直接结束当前for循环

public class Hello {
    public static void main(String[] args) {

        for (int j = 0; j < 10;j++){
            if (0==j%2)
                break;//如果是双数,直接结束循环

            System.out.println(j);
        }
    }
}

实际练习:

假设你月收入是3000,除开平时花销,每个月留下1000块钱进行投资。

然后你认真的钻研了 《股票和基金 21天从入门到精通》,达到了每年20%的投资回报率。

那么问题来了,以每个月投资1000块钱的节奏,持续投资多少年,总收入达到100万
(复利计算按照每年12000投入计算,不按照每月计息)

复利公式:
F = p* ( (1+r)^n );
F 最终收入,p 本金,r 年利率,n 存了多少年

假设情景一:
p = 10000
r = 0.05
n = 1

解读:
本金是10000
年利率是5%
存了一年 1次
复利收入 10000*( (1+0.05)^1 ) = 10500

假设情景二:
p = 10000
r = 0.05
n = 2

解读:
本金是10000
年利率是5%
存了两年
复利收入 10000*( (1+0.05)^2 ) = 11025
结束外部循环
  • break;只能结束当前循环
public class HelloWorld{
    public static void main(String[] args){
        //打印单数    
        for (int i = 0; i < 10; i++) {
             
            for (int j = 0; j < 10; j++) {
                System.out.println(i+":"+j);
                if(0==j%2) 
                    break; //如果是双数,结束当前循环
            }    
        }
    }
}
  • 借助boolean变量结束外部循环

    ​ 需要在内部循环中修改这个变量值,每次内部循环结束后,都要在外部循环中判断,这个变量的值

    public class HelloWorld {
    	public static void main(String[] args) {
    		boolean breakout = false; //是否终止外部循环的标记
    		for (int i = 0; i < 10; i++) {
    
    			for (int j = 0; j < 10; j++) {
    				System.out.println(i + ":" + j);
    				if (0 == j % 2) {
    					breakout = true; //终止外部循环的标记设置为true
    					break;
    				}
    			}
    			if (breakout) //判断是否终止外部循环
    				break;
    		}
    
    	}
    }
    
  • 使用标签结束外部循环

    ​ 在外部循环前一行,加上标签

    ​ 在break的时候使用该标签

    ​ 即能达到结束外部循环的效果

    public class HelloWorld{
        public static void main(String[] args){
            //打印单数
            outloop://outloop这个标示是可以自定义的,不是主要词汇都可以
            for (int i = 0;i < 10; i++){
                for (int j = 0; j < 10; j++){
                    System.out.println(i+":"+j);
                   if(0==j%2)
                       break outloop;//如果是双数,结束外部循环
                }
            }
        }
    }
    

    实例练习,水仙花数定义:
    1. 一定是3位数
    2. 每一位的立方,加起来恰好是这个数本身,比如153=111+555+333

    寻找所有的水仙花数

    public class HelloWorld{
    	//水仙花数,一定是3位数,每一位的立方加起来就是本身
    	//153=1*1*1+5*5*5+3*3*3
    	//问题:寻找所有水仙花数
    	public static void main(String[] args) {
    		//分析:3位数,把百位、十位、个位分开
    		for(int i=100;i<1000;i++){//给出取值的范围,是3位数<1000
    			int a = i%10;	//取个位上的数
    			int b = i%100/10;	//取十位的数
    			int c = i/100;//取百位的数
    			if(Math.pow(a, 3)+Math.pow(b, 3)+Math.pow(c, 3)==i){
    				System.out.println(i);
    			}
    		}
    	}
    }
    

    实例练习,寻找某两个数相除,其结果 离黄金分割点 0.618最近

    分母和分子不能同时为偶数
    分母和分子 取值范围在[1-20]

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/329106.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号