要有良好的编程习惯!!!

0、关于java:跨平台是指跨越操作系统。java源代码 .java--编译-->字节码文件 .class---运行。java是开源的。JDK包含JRE,JRE包含JVM,对于开发人员,需要安装JDK。对于普通用户只需要安装JRE(java运行环境)。

1、java关键字区分大小写。void是,但是Void不是。

2、java标识符适用于给Java中变量、类、方法命名的符号,严格区分大小写。

3、java中标点符号是英文的。

4、java变量名没有长度限制。

5、Java中基本数据类型变量保存数据本身,引用数据类型保存数据的空间地址。

6、Java中的变量需要先声明后使用。可以在声明变量的同时进行初始化,也可以先声明后复制,每次只能为一个变量赋一次值,但是可以修改多次。main方法中定义的变量必须先赋值,才可以输出。变量名不建议使用中文。

7、通过强制类型转换将 赋值给 int 型变量后,结果为 75,数值上并未进行四舍五入,而是直接将小数位截断。强制类型转换可能会造成数据的丢失哦

8、常量的值设定之后在程序运行的过程中不允许被改变,使用常量可提高代码的可维护性。常量名称全拼大写。

final double PI=3.15;

9、char定义字符,使用单引号,String 是字符串,使用双引号。

public static void main(String[] args) {` `final char GIRL='女';` `final char BOY='男';` `(GIRL);` `(BOY);}

10、int b=++a;a先自增再赋值给b;

11、< 、>、 <=、 >=只支持左右两边操作数是数值类型;==、!=、两边的操作数既可以是数值类型,也可以是引用类型。

12、异或 a^b;

13、三元运算符: 布尔表达式 ?表达式1 :表达式2( ? : 要使用英文状态)

14、优先级:

15、判断一个int型数值是否介于另外两个数值之间:

我的代码:else if(40>age>18)

正确代码:else if((age<40)&&(age>18))

错误原因:if中需要一个Boolean的表达式,而我的代码中第一个是‘40’为int类型。

16、当需要对选项进行等值判断时,使用switch语句会更加简洁明了。

执行过程:当 switch 后表达式的值和 case 语句后的值相同时,从该位置开始向下执行,直到遇到 break 语句或者 switch 语句块结束;如果没有匹配的 case 语句则执行 default 块的代码。

不得不说的几点小秘密:

、 switch 后面小括号中表达式的值必须是整型或字符型

、 case 后面的值可以是常量数值,如 1、2;也可以是一个常量表达式,如 2+2 ;但不能是变量或带有变量的表达式,如 a * 2

16.3、 case 匹配后,执行匹配块里的程序代码,如果没有遇见 break 会继续执行下一个的 case 块的内容,直到遇到 break 语句或者 switch 语句块结束。

、 可以把功能相同的 case 语句合并起来,如:

case 1:

case 2:

​ …

、 default 块可以出现在任意位置,也可以省略

17、关于for循环

for循环中循环变量初始化、循环次数、循环变量变化都可以省略,但是“;”不可以省略。其中,变量的初始化可以再循环体之前定义好,循环次数省略的话,会出现死循环,但是可以使用break跳出循环,循环变量的变化可以在循环体内进行定义。

for 循环变量初始化和循环变量变化部分,可以是使用 “,” 同时初始化或改变多个循环变量的值,如:

for(int i=8,j=9;i<=8,j<=10;i++,j--)

循环条件部分可以使用逻辑运算符组合的表达式,表示复杂判断条件,但一定注意运算的优先级

18、do...while 循环结束的条件是 while 后的条件不成立。

19、给定一个小于10位的数,判断它是几位数。例如:输入999,则输出 “它是个3位的数!”

我的错误代码:

int num = 999;
int count = 0;
while(num/10!=0){count++;num/=10;
}
("它是个"+count+"位的数");

逻辑错误,改变了两次num的值。

正确代码:

int num = 999;
int count = 0;
while(num!=0){count++;num/=10;
}
("它是个"+count+"位的数");

除法和取余一定要区分清楚作用。int除法用来除去位数,取余取每一位上的数字。

20、练习:实现接受三个班级的阁寺名学生的成绩,并求出平均分数。

我的错误代码:

public static void main(String[] args) {Scanner scanner=new Scanner();while(()){double a1=();double a2=();double a3=();double a4=();((a1+a2+a3+a4)/4);}
}

存在的错误:没有考虑到需要控制班级数量。我的代码是需要手动停止输入。

第一次改正的代码:(使用了二重嵌套循环)

int sum=0;
for(int i=0;i<3;i++){for(int j=0;j<4;j++){int s=new Scanner().nextInt();sum+=s;}(sum/4);
}

存在的错误:在计算后面的班级成绩总和时候,sum并没有归零。

正确的代码:

 int sum=0;for(int i=0;i<3;i++){sum=0;for(int j=0;j<4;j++){int s=new Scanner().nextInt();sum+=s;}(sum/4);}
}

21、使用Java中的数组:

第一步:声明数组 数据类型[] 数组名;

第二步:分配空间 数组名 =new 数据类型[数组长度];

​ 也可以直接创建数组:int[] score={12,2,2,11};

​ 等价于: int[] score=new int[]{12,2,2,11}; 第二个[]中必须为空,不可以指定长度。

第三步:赋值 数组名[下标]=值;

第四步:处理数组中数据。

22、数组中找到并保存最大值,用数组中的某一个位置的元素,比如先假定第一个元素为最大值,max=nums[1]

23、编程练习:

任务

一、 存储35周学习内容(已提供部分完成的功能)

提示:1、 创建String数组,并为每一个元素赋值,内容为【第X周】XXX2、 利用int型的变量接收输入的数字

二、 计算今天处于第几周

提示:1、根据输入的数字,计算今天是第几个月
(例如:4对应第一月第四周,5代表第二月第一周)2、换算一下,输入的周是这个月的第几周

三、 遍历并输出本月的学习内容,并标记本周内容

提示:1、利用for循环,找到数组中对应这个月的内容输出2、根据当前月第几周,在输出此行时,前面添加“√”

我的第一个错误代码:

package javademo;import java.util.Scanner;public class Arrays05 {public static void main(String[] args) {//创建String数组,并为每一个元素赋值。赋值内容为第几周+学习内容String[] contentList = new String[35];contentList[0] = "【第1周】环境搭建与语法入门";contentList[1] = "【第2周】Java语法之循环、数组与方法";contentList[2] = "【第3周】面向对象之封装与继承";contentList[3] = "【第4周】面向对象之单例模式与多态";contentList[4] = "【第5周】常用工具类(上)";contentList[5] = "【第6周】常用工具类(下)";contentList[6] = "【第7周】常用工具类(下)";contentList[7] = "【第8周】前端基础之HTML与CSS";contentList[8] = "【第9周】前端基础之JavaScript与综合案例";contentList[9] = "【第10周】Java Web基础";contentList[10] = "【第11周】Java Web基础";contentList[11] = "【第12周】常用功能与过滤器";contentList[12] = "【第13周】监听器与项目实战";contentList[13] = "【第14周】监听器与项目实战";contentList[14] = "【第15周】MySQL基础";contentList[15] = "【第16周】MySQL基础";contentList[16] = "【第17周】Java数据库开发基础";contentList[17] = "【第18周】框架前置知识";contentList[18] = "【第19周】MyBatis基础";contentList[19] = "【第20周】MyBatis实现OA系统项目实战";contentList[20] = "【第21周】MyBatis实现OA系统项目实战";contentList[21] = "【第22周】Linux环境搭建与Redis应用";contentList[22] = "【第23周】Spring基础";contentList[23] = "【第24周】Spring基础";contentList[24] = "【第25周】Spring基础";contentList[25] = "【第26周】SSM开发社交网站";contentList[26] = "【第27周】Spring Boot电商项目实战";contentList[27] = "【第28周】Spring Boot电商项目实战";contentList[28] = "【第29周】面试";contentList[29] = "【第30周】多线程与分布式";contentList[30] = "【第31周】多线程与分布式";contentList[31] = "【第32周】Spring Cloud基础";contentList[32] = "【第33周】Spring Cloud电商实战";contentList[33] = "【第34周】Spring Cloud电商实战";contentList[34] = "【第35周】Zookeeper+Dubbo应用与面试";//提示信息("您要开始第几周学习啦,直接输入数字吧:");//设置变量存储接收到的数据int num  = new Scanner().nextInt();//计算今天是几月(1-月第一周、4-月第4周)int month=0;month=(num-1)/4+1;//计算输入的周是这个月的第几周int week=0;week=num%4;//提示信息("以下是您本月的学习计划, √ 代表当周学习任务");("=======================================");//利用for循环,找到数组中对应这个月的内容输出if(month==1){for (int i = 0; i <4 ; i++) {if(week==(i%4+1)){("√"+contentList[i]);}(contentList[i]);}}if(month==2){for (int i = 4; i <8 ; i++) {if(week==(i%4+1)){("√"+contentList[i]);}(contentList[i]);}}if(month==3){for (int i = 8; i <12 ; i++) {if(week==(i%4+1)){("√"+contentList[i]);}(contentList[i]);}}if(month==4){for (int i = 12; i <16 ; i++) {if(week==(i%4+1)){("√"+contentList[i]);}(contentList[i]);}}if(month==5){for (int i = 16; i <20 ; i++) {if(week==(i%4+1)){("√"+contentList[i]);}(contentList[i]);}}if(month==6){for (int i = 20; i <24 ; i++) {if(week==(i%4+1)){("√"+contentList[i]);}(contentList[i]);}}if(month==7){for (int i = 24; i <28 ; i++) {if(week==(i%4+1)){("√"+contentList[i]);}(contentList[i]);}}if(month==8){for (int i = 28; i <32 ; i++) {if(week==(i%4+1)){("√"+contentList[i]);}(contentList[i]);}}if(month==9){for (int i = 32; i <35 ; i++) {//根据当前月第几周,在输出此行时,前面添加“√”if(week==(i%4+1)){("√"+contentList[i]);}(contentList[i]);}}}
}

错在:我不知道怎么去循环找到月份,所以去一个一个的循环,主要是没有理解了循环的意义。应该是为循环变量设置良好的初始值和循环次数,结合if条件找到和 输入值对应月份 相同的用循环变量表示的月份, 就是找到了那个月份。这也是定义了month这个变量的原因。

循环体中我没有想到,使用了暴力枚举,但是实际可以这种表示:

for(int i=(month-1)*4;i<month*4;i++);

但是存在的bug:

如果输入第35周以后的数字:会越界。可以使用try catch处理异常。

我的第二个正确代码:

package javademo;import java.util.Scanner;public class Arrays06 {public static void main(String[] args) {//创建String数组,并为每一个元素赋值。赋值内容为第几周+学习内容String[] contentList = new String[35];contentList[0] = "【第1周】环境搭建与语法入门";contentList[1] = "【第2周】Java语法之循环、数组与方法";contentList[2] = "【第3周】面向对象之封装与继承";contentList[3] = "【第4周】面向对象之单例模式与多态";contentList[4] = "【第5周】常用工具类(上)";contentList[5] = "【第6周】常用工具类(下)";contentList[6] = "【第7周】常用工具类(下)";contentList[7] = "【第8周】前端基础之HTML与CSS";contentList[8] = "【第9周】前端基础之JavaScript与综合案例";contentList[9] = "【第10周】Java Web基础";contentList[10] = "【第11周】Java Web基础";contentList[11] = "【第12周】常用功能与过滤器";contentList[12] = "【第13周】监听器与项目实战";contentList[13] = "【第14周】监听器与项目实战";contentList[14] = "【第15周】MySQL基础";contentList[15] = "【第16周】MySQL基础";contentList[16] = "【第17周】Java数据库开发基础";contentList[17] = "【第18周】框架前置知识";contentList[18] = "【第19周】MyBatis基础";contentList[19] = "【第20周】MyBatis实现OA系统项目实战";contentList[20] = "【第21周】MyBatis实现OA系统项目实战";contentList[21] = "【第22周】Linux环境搭建与Redis应用";contentList[22] = "【第23周】Spring基础";contentList[23] = "【第24周】Spring基础";contentList[24] = "【第25周】Spring基础";contentList[25] = "【第26周】SSM开发社交网站";contentList[26] = "【第27周】Spring Boot电商项目实战";contentList[27] = "【第28周】Spring Boot电商项目实战";contentList[28] = "【第29周】面试";contentList[29] = "【第30周】多线程与分布式";contentList[30] = "【第31周】多线程与分布式";contentList[31] = "【第32周】Spring Cloud基础";contentList[32] = "【第33周】Spring Cloud电商实战";contentList[33] = "【第34周】Spring Cloud电商实战";contentList[34] = "【第35周】Zookeeper+Dubbo应用与面试";//提示信息("您要开始第几周学习啦,直接输入数字吧:");//设置变量存储接收到的数据int num  = new Scanner().nextInt();//计算今天是几月(1-月第一周、4-月第4周)int month=0;month=(num-1)/4+1;//计算输入的周是这个月的第几周int week=0;week=num%4;//提示信息("以下是您本月的学习计划, √ 代表当周学习任务");("=======================================");//利用for循环,找到数组中对应这个月的内容输出for (int i = 0; i <() ; i++) {if(month==((i/4)+1)){(contentList[i]);if(week==((i+1)%4)){("√"+contentList[i]);}}}//}
}

心得:要学好数学,要有良好的逻辑思维才行啊。

在我的idea是可以运行出结果的,在网页慕课上报了错:

Exception in thread "main" java.util.NoSuchElementExceptionat java.util.Scanner.throwFor()at java.util.Scanner.next()at java.util.Scanner.nextInt()at java.util.Scanner.nextInt()at HelloWorld.main()
您要开始第几周学习啦,直接输入数字吧:

//设置变量存储接收到的数据
46: int nums = new Scanner().nextInt();

定义month的时候也可以用if判断一下。如果可以被4整除则month=nums/4;如果不可以被4整除

,month=nums/4+1;

java int相除向上取整_JAVA入门第一季学习补充 - 何以解忧?相关推荐

  1. java int相除向上取整_java实战项目常用类,Date、Calendar、BigDecimal、Math、UUID

    Java开发中经常用到的类和方法,以下主要就日期是时间处理.金融数字处理.数学计算.随机数.MD5加密等. java.util.Date类 java.util 包提供了 Date 类来封装当前的日期和 ...

  2. java int相除向上取整_Java基础篇——Java运算符

    Java运算符按功能可分为:算数运算符.关系运算符.逻辑运算符.位运算符.赋值运算符和条件运算符. 算数运算符 算术运算符包括通常的加(+).减(-).乘(*).除(/).取模(%),完成整数型和浮点 ...

  3. java int相除向上取整_Java工程师(4).运算符

    什么是运算符 运算符可以对两个变量的值执行运算,运算过程由CPU完成. 都有哪几类运算符 Java中的运算符主要包含以下几类: 算术运算符 赋值运算符 关系运算符 逻辑运算符 算术运算符 算术运算符用 ...

  4. 解决java中浮点数相除向上取整出错的方法

    实际应用中,经常可以遇到浮点数之间相除然后向上取整,比如客流量与常量之比和店员数之间就应向上取整,多一个人都应该加一名员工. 先谈谈什么是向上取整,什么是向下取整 上取整,不管四舍五入的规则,只要后面 ...

  5. Java两整数相除向上取整

    前言:Java中两个整数相除,如果不能整除,默认是向下取整的.例如:11 除以 3 的结果是 3.然而,某些情况下(eg. 把11个糖果,每3个分一堆,不足三个也分成一堆,可以分几堆?),我们需要向上 ...

  6. java 向上取整_java 中的异常处理和常用类使用

    一.异常: 1.异常的简单介绍: Throwable类 / Error Exception | | Unchecked Checked Runtime Exception Exception Exce ...

  7. java保留两位小数并向上取整_Java取整,固定保留两位小数,适配负数、金融数字。...

    文/阿敏其人 本文出自阿敏其人简书博客,转载请注明出处和连接. 整数前的0去掉. 小数固定保留两位小数 兼容负数 数字检测 适配金融大数额 核心类 public class BigDecimalStr ...

  8. java第一季_Java入门第一季

    第一章 Java初体验 第二章 变量与常量 2-1关键字 2-2 标识符 标识符是用于给程序中的变量.类.方法等命名的符号 2-4 变量 三个元素描述变量:变量名.变量类型和变量值. 2-5 命名变量 ...

  9. Java int类型的除法 向上取整 向下取整 保留小数位数

    今天做了一道计算题,用到整数相除的向上取整,突然卡住了.然后查询并试用了如下方法. 一.三目运算法(向上 / 向下取整 快捷.准确) 两个int型 a.b,a / b 向上取整.可以使用 a / b ...

  10. Java中的向上取整 Math.ceil(double)

    在调外部接口获取列表数据时, 需要判断是否已经取完了所有的值,因此需要用到向上取整. Math.ceil()函数就是向上取整,即取大于参数的最小整数值. 只要参数有小数,都会去掉小数位,将整数位加一( ...

最新文章

  1. irobot擦地机器人故障_iRobot擦地机器人:只会擦地并不“奢侈”
  2. Go语言命令行库urfave/cli简介
  3. 2019 CCPC wannfly winter camp Day 5
  4. OpenCV C++ 06 - Histogram Equalization of a Grayscale image with OpenCV
  5. 【离散数学中的数据结构与算法】四 加法法则与乘法法则
  6. this的用法添加样式给tr或者div
  7. WEB消息提醒实现之二 实现方式-websocket实现方式
  8. 20190826:(leetcode习题)反转链表
  9. static 关键字
  10. c语言中cot函数图像,cot函数图像
  11. HTML分页插件功能实现
  12. 微信小程序开发——将自己的图片变成网络图片/图片链接生成
  13. 如何把docx变为ass_电影字幕转Word教程
  14. 快速拥有自己的博客,语雀或许是不错的选择
  15. 最新PyCharm基本使用(3)------编码(Code)、重构(Refactor)
  16. 【20210401】用Python的turtle库绘制呲牙表情包
  17. c语言比较函数memcmp,c语言函数memcmp()如何比较内存前n个字节实例源码介绍
  18. [Android]桌面应用
  19. C语言,一个分号引发的问题:Run-Time Check Failure #2 - Stack around the variable ‘class1‘ was corrupted.
  20. android代码修改mp3文件封面,从android中的mp3文件中提取专辑封面

热门文章

  1. Python遥感影像拼接
  2. 二项式分布(Binomial Distribution)
  3. 计算机音乐谱老纸老虎,二年级下册音乐教案第六单元《两只老虎》人音版(简谱)...
  4. 阻止浏览器冒泡和默认行为
  5. 服务器ip每天自动更换,IP地址经常更换,自动获取的IP上不了网怎么办?
  6. INDEX函数,隔行提取数据
  7. linux硬盘检测健康状态脚本,系统运维|使用 smartmontools 查看硬盘的健康状态
  8. 怎么关闭vivo系统自检_MIUI11系统已发布,你怎么能不会这个一键关闭广告的功能呢!...
  9. 免费的java(jsp)虚拟主机jhost
  10. mariadb数据库基本使用