版权声明
- 本文原创作者:元芳,你怎么看
- 作者的博客地址:https://blog.csdn.net/ewcc_ycl
注释
注释的作用:提高代码的可读性
注释分类:
- 单行:用//放在要注释文字的前面,这样编译器就会忽略//后的文本
例如:
//被注释的文本
- 多行: 用/* */ 包含文本,这样其中的文本会被编译器所忽略
例如:
/*被注释的文本1
被注释的文本2*/
- 文档注释:用/** */包含文本,它是Java特有的注释。注释内容可以被JDK工具Javadoc解析,生成一套该程序的网页形式的说明文档。
基本数据类型转换
自动转化(隐式转化)
Java内部支持自动将数值进行类型提升,即可以将一个数赋值给更大数值范围的变量,就叫做自动类型转换( 也叫隐式类型转换)。所有的数字类型,包括整型和浮点型彼此都可以进行转换。
要实现自动类型的转换,需要满足两个条件:
1、两种类型彼此兼容
2、目标类型取值范围必须大于源类型。
例如:
//正确隐式转化
byte a=20;
int b=a;
System.out.println(b) //自动把byte转化为int类型
float c=15.5F; //浮点数类型默认为double类型,所以后缀要加F或者f
double d=c; //自动把float转化为double类型
在例子中为byte类型的a赋值时,整数类型数值默认为int,这等于是让int类型转化为byte类型。是否违反了转化的规则呢?
其实java语言在设计时,如果整数常量没有超出数据类型的取值范围,那么是允许直接进行赋值
注意:这种赋值只对常量适用,对变量不适用
强制转化(显式转化)
前面我们说了在Java内部类型支持把小类型转化为大类型,那么我们能不能把大类型的转化为小类型的,答案是true 。那就是强制转化。
格式:转化什么类型就在前面加上(类型)
注意:强制转化可能会导致精度缺失
例如:
//double类型转化为int类型
double a=15.9;
int b=(int)a; //把double类型强制转化为int类型
System.out.println(b); //打印出来的b结果为15 精度缺失了小数部分
//注意是缺失不是四舍五入
Java语句结构
Java代码执行结构有三种:
- 顺序结构
- 选择结构
- 循环结构
顺序结构
顺序结构即按着顺序来执行的结构,Java默认的顺序为先后顺序。
例如:
int a=5;
int b=3;
int c=90;
System.out.println(a);
System.out.println(b);
System.out.println(c);
结果:
从结果来看,表明Java语句默认是从上到下顺序执行的。
选择结构
选择结构也叫分支结构,根据条件执行不同的分支,常用的分支有两种:
- if…else…结构
- switch case 结构
if…else…结构
- if语句
格式:
if(判断条件){
满足条件执行的代码
}
if(5>3) {
System.out.println("作者:元芳,你怎么看");
}
结果:
- if…else 双分支
格式:
if(判断条件){
满足条件执行的代码
}else{
不满足条件执行的代码
}
if(5<3) {
System.out.println("作者:元芳,你怎么看");
}else {
System.out.println("元芳大人");
}
结果:
- if…else…多分支
格式:
if(判断条件1){
满足条件1执行的代码
}else if(判断条件2){
满足条件2执行的代码
}else{
都不满足执行的代码
}
if(5<3) {
System.out.println("作者:元芳,你怎么看");
}else if(9<23) {
System.out.println("元芳,你怎么看");
}else {
System.out.println("元芳大人,你怎么看");
}
结果:
if这种结构的判断条件通常结果为一个布尔值。
switch…case结构
格式:
switch(表达式){
case 值1:
执行语句;
break;
case 值2:
执行语句;
break;
…
default:
执行语句;
break;
}
其中的表达式的值可以是整数类型、char类型、枚举类型 ,JDK7及以后的版本又加了字符串类型。
执行过程为:先执行表达式得到一个值,然后把值与case 后面的值匹配,匹配就执行下面的语句 然后执行break 跳出结构,否则就去匹配下一个case 后的值,一直重复下去,直到值全都不匹配就执行default下的语句再跳出结构。
break关键字
每个case分支代码块的最后,通常都要写break语句,这将跳出swtich 语句。如果没有则会顺序执行,我们管其叫为case穿透。不建议这样写。但是有时我们可以利用这种穿透写代码能节省很多代码。
例如:
default关键字
可以省略不写,代码不会报错,但是为了代码的严谨性,建议还是不要省略比较好。
循环结构
根据条件重复执行某段代码。
(1) for循环
用于执行已知循环次数的语句。
(2) while循环
用于执行未知循环次数的语句。只有满足条件才能循环。
(3) do…while循环
用于执行未知循环次数的语句。不管是否满足条件,都至少会执行一~次循环。
(4)特殊语句(关键字)
continue:中断本次循环,直接进入下一次循环。
break:
中断整个循环,即退出循环。
for循环
格式:
for(初始化表达式;条件表达式:循环后执行的表达式(迭代表达式)){
循环体
}
流程图:
实例:找出50以内能被3整除的数
package com.ew;
public class TestFor {
public static void main(String[] args) {
for(int i=1;i<=50;i++) {
if(i%3==0) {
System.out.println(i+"能被3整除");
}
}
}
}
结果:
while结构
格式:
初始化语句
while(判断语句){
循环体
控制条件语句
}
流程图:
实例:打印10遍祖国我爱你
package com.ew;
public class TestWhile {
public static void main(String[] args) {
int a=1;
while(a<=10) {
System.out.println("祖国我爱你");
a++;
}
}
}
结果:
do…while结构
其与while的差别在于不管满不满足判断语句都会去执行一次循环体语句。
格式:
do{
循环体
控制条件语句
}while(判断语句)
流程图:
实例:基本与while一样。
控制语句
- break语句 :跳出本层的循环;(只跳出包含此语句的循环);
- continue语句 :继续 (一般放到循环语句里,不在执行它下面的语句,直接跳到判语句)
- return 语句:返回 通常用于返回值
break实例:
package com.ew;
public class TestWhile {
public static void main(String[] args) {
int a=1;
while(a<=10) {
System.out.println("祖国我爱你");
if(a==5) {
break; //当a为5时跳出整个循环
}
a++;
}
}
}
结果:
continue实例:
package com.ew;
public class TestWhile {
public static void main(String[] args) {
int a=0;
while(a<10) {
a++;
if(a==5) {
continue; //当a=5时跳出本次循环
}
System.out.println("祖国我爱你"+a);
}
}
}
结果:
总结:
break会强制终止循环并跳出循环体。
break语句用于终止最近的循环或它所在switch语句,常用于for循环、switch 两种循环语句。
continue并不会强制终止循环,只是忽略了本次循环剩下的语句。continue语句将控制权传递给它所在的封闭迭代语句的下一次迭代(即跳出本循环,执行下一次循环),适用于while、do while、for 循环语句。