JAVA03
Java的反编译idea
- 将字节码文件拖到idea的工作目录,必须在文件的形式下,不能直接拖到idea。然后直接打开就是。class的反编译的文件
- 看源码是一个好的习惯
循环结构
- while
package com.kangsdan.Base.operrator;
public class WhileDemo01 {
public static void main(String[] args) {
int i=0;
int sum=0;
while(i<=100){
System.out.println(i);
sum=i+sum;
i++;
//sum=i+sum;(如果在下面的结果为5151;就是错误的,你要加的对象是谁,是不是错误了
}
System.out.println(sum);
}
}
//先判断,后执行
- do …while
package com.kangsdan.Base.operrator;
public class WhileDemo01 {
public static void main(String[] args) {
int i=0;
int sum=0;
do{
sum+=i;
i++;//迭代
}while (i<=100);
System.out.println(sum);
}
}
//先执行后判断,至少跑一次
- while …do
- for
package com.kangsdan.Base.operrator;
public class WhileDemo01 {
public static void main(String[] args) {
// int i=0;
int sum=0;
int sum2=0;
// 初始 布尔 迭代
for (int i = 0; i <=100 ; i++) {
//都可以删除
if(i%2==0){
sum+=i;
}
//0到100之间奇数和偶数和
if (i%2!=0){
sum2+=i;
}
}
//100.for快捷键
System.out.println("over "+sum+sum2);//字符串在前就全为字符串
}
}
//java输出奇数偶数和
package com.kangsdan.Base.operrator;
public class WhileDemo01 {
public static void main(String[] args) {
for (int i = 0; i < 1000; i++) {
if(i%5==0){
System.out.print(i+"\t");
}
if(i%(5*3)==0){
System.out.println();
}
}
}
}
//能被5整除,每3个换一个
public class WhileDemo01 {
public static void main(String[] args) {
for (int i = 1; i < 10; i++) {
for (int j = 1; j <= i; j++) {
System.out.print(j+"*"+i+"="+(i*j)+"\t");
}
System.out.println();
}
}
}
//九九乘法表
- 增强for循环
public class WhileDemo01 {
public static void main(String[] args) {
int[] num={10,20,40,50};//数组
for (int i:num) {
System.out.println(i);
}
}
}
//遍历数组的内容 集合
//增强for循环
- break;continue
public class WhileDemo01 {
public static void main(String[] args) {
int i=0;
while(i<100){
i++;
if(i==30){
break;//强制退出循环
}
}
System.out.println(123);
}
}
public class WhileDemo01 {
public static void main(String[] args) {
int i=0;
while(i<100){
i++;
if(i%10==0){
continue;//回到起点
}
System.out.println(i);
}
System.out.println(123);
}
}
- 强制退出break 每个地方
- continue 只可以用到循环中
goto
java 没有得到正式使用,唯一用到标签的时候 循环
public class WhileDemo01 {
public static void main(String[] args) {
int count=0;
outer:for (int i = 101; i < 150; i++) {
for (int j = 2; j <i/2 ; j++) {
if(i%j==0) {
continue outer;
}
}
System.out.println(i+"\t");
}
}
}
//只是一个标签
流程控制练习
public class Demo {
//打印三角形
public static void main(String[] args) {
for (int i = 1; i <=5 ; i++) {
for (int j = 5; j >= i; j--) {//拆分,这是一个好的方式
System.out.print(" ");
}
for (int j = 1; j <=i; j++) {
System.out.print("-");
}
for (int j = 1; j <i; j++) {
System.out.print("-");
}
System.out.println();
}
}
}
//拆分的思想
Java的方法
- 什么是方法
public class T1 {
public static void main(String[] args) {
//main 方法
int a=new T1().add(1,2);
System.out.println(a);
}
//修饰符 返回类型 方法名 参数
public int add(int a,int b){
return a+b;//返回 终止方法
}
}
- System是一个类 out 对象 println方法
- 方法是语句的集合
- 类 或者对象中
- 在程序创建其它地方调用
- 原子性:一个方法完成一个功能
- 方法的定义
- 方法重载
- 同一个类中参数不同的方法(相同的名字,参数不同
- 名字不同 参数不同 个数顺序
- 返回类型 不限制
- 他会自动匹配
public class T2 {
public static void main(String[] args) {
}
public static int add(int a,int b){
return a+b;
}
public static int add(int a){
return 2*a;
}
}
//方法的重载
- 命令行传参
将ming’li
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2DDSxtVl-1590760334495)(C:\Users\1\AppData\Roaming\Typora\typora-user-images\image-20200529202224912.png)]
- 可变参数
- jdk1.5开始
- 在指定参数类型后+…
- 只能一个可变参数而其必须在最后
public class Demo04 {
public static void main(String[] args) {
new Demo04().test(1,4,5);
}
public void test(int...i){
for (int j = 0; j <i.length ; j++) {
System.out.println(i[j]);
}
System.out.println(i[0]);
}
}
//可变参数 本质就是数组可以传递数组
-
递归(能不用就他丫的不用,影响效果)
1.自己调用自己
2.递归头
3.递归体
public class DE0 { public static void main(String[] args) { System.out.println(new DE0().test(5)); } public int test(int n){ if(n==1){ return 1; }else{ return n*test(n-1); } } } //递归方法
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kHupS5TK-1590760334496)(C:\Users\1\AppData\Roaming\Typora\typora-user-images\image-20200529203825805.png)]
//递归的方法
边界条件 (1)
前阶段
返回阶段
java是使用栈基址的
调用方法压栈。
数值
-
概念
1.相同类型数据集合
2.可以通过下标访问
-
声明
-
使用
-
多维数组