java基础day01

1.数组

调用point时,更换其中一个的值,另一个也会更改,原因就是因为point是调用存储

Point point1 = new Point(x:1,y:1);
Point point2 = point1;
point1.x = 2;
System.out.Println(point2);

而像int/byte则是分别存储啊,位于不同的内存位置

byte x = 1;
byte y = x;
x = 2;
System.out.Println(y);

trim
string.trim()

转义字符\  
换行\n
制表\t

//c:\windows\...
String message = "c:\\windows\\..."

1.1数组打印

使用方法

Arrays.toString()//一维数组
Arrays.deeptoString()//多维数组

int [][] numbers = new int[2][3];
//使用花括号可以直接打印数组
int [][] numbers = { {1,2,3},{4,5,6},{7,8,9}};
Systerm.out.Println(Arrays.deeptoString(numbers));


1.2使用final可以固定变量

final float PI = 3.14;
pi = 2;

1.1.3三元运算法

public static void main(String[] args) {
    int Income = 120_000;
    String ClassName = Income > 100_000 ? "First" : "Economy";

2.循环

2.1 switch语句

使用if语句书写时是这样的,下面使用Switch语句进行改写

public class admin {
    public static void main(String[] args) {
        String role = "admin";
        if (role =="admin")
            System.out.println("you are an admin");
        else if (role =="moderator")
            System.out.println("you are a moderator");
        else
            System.out.println("you are a guest!");
    }
}

改写后如下所示:

public class admin {
    public static void main(String[] args) {
        String role = "admin";
        switch (role) {
            case "admin":
                System.out.println("you are an admin");
                break;
            case "moderator":
                System.out.println("you are a moderator");
                break;
            default:
                System.out.println("you are a guest!");

        }
    }

2.2 for与while循环对比

        for (int i = 0; i < 5; i++) {
            System.out.Println("hello world"+i);   
        }

        int i = 0;
        while(i < 5){
            System.out.Println("hello world"+i); 
            i++;
        }

2.3 while使用

import java.util.Scanner;

public class onecup {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String input = "";
        while (!input.equals("quit")){
            System.out.print("Input: ");
            
            input = scanner.next().toLowerCase();
            System.out.print(input);
        }
           //使用do{}while() 
            do {
            System.out.print("Input: ");
            
            input = scanner.next().toLowerCase();
            System.out.print(input);

        }while(!input.equals("quit"))

注: 使用while-true时要确保语句内包含break字段,否则会造成内存消耗,永久无限循环并且不会终止

import java.util.Scanner;

public class onecup {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String input = "";
        while(true){
            System.out.print("Input: ");
            
            input = scanner.next().toLowerCase();
            if (input.equals("pass"))
                continue;
            if (input.equals("quit"))
                break;
            System.out.println(input);
        }

2.4 for循环and for-each

    public static void main(String[] args) {
        String [] fruits = {"apple","mongo","orange"};

        for (int i = 0;i < fruits.length;i++)
        //(int i = fruits.length;i > 0;i--)
            System.out.println(fruits[i]);
        for (String fruit : fruits)
            System.out.println(fruit);

2.5 死循环格式

for(;;){}
while(true){}
do{}while(true);

break与continue的区别就是continue会跳过本次循环,而break是终止循环

例如:

for (int i = 0;i<=5;i++){}
	if(i%2 == 0){
	break;
	//continue;
	}
	System.out.println(i);
}

break输出结果是1,而continue结果是1,3,5

3. 循环嵌套

3.1.1打印菱形;同时也是多重循环的训练

package com.lingxing;

public class lingxing {
    public static void main(String[] args) {
        int size = 5;//行数
        int startNum = size/2 + 1;//初始列号
        int endNum = size/2 + 1;//结束列号
        boolean flag = true;

        for (int j=1;j<=size;j++){
            for (int i=1;i<=size;i++){
                if (i>=startNum&&i<=endNum){
                    System.out.print("*");
                }else
                    System.out.print(" ");
            }
            System.out.println();//换行

            if (endNum == size ){//endNum==size时,flag关闭
                flag = false;
            }
            
            if (flag){//默认为TRUE
                startNum--;
                endNum++;
            }else {//相当于打印下半部分
                startNum++;
                endNum--;
            }
            
        }
    }
}

3.1.2菱形打印方法二

package com.lingxing;

public class lingxing {
    public static void main(String[] args) {
        /*lingxing
         *
         *    *
         *   * *
         *  *   *
         *   * *
         *    *
         * */
        //上面三角形
        for (int j = 1; j <= 4; j++) {//控制行数
            for (int i = 1; i <= (9-j); i++) {//控制空格数量
                System.out.print(" ");
            }
            //*******
            for (int i = 1; i <= (2 * j - 1); i++) {//控制*个数
                System.out.print("*");
            }
            //换行
            System.out.println();
        }

        //下面三角形
        for (int j = 1; j <= 3; j++) {//控制行数
            for (int i = 1; i <= (j+5); i++) {//控制空格数量
                System.out.print(" ");
            }
            //*******
            for (int i = 1; i <= (7-2*j); i++) {//控制*个数
                System.out.print("*");
            }
            //换行
            System.out.println();
            }
        }
}

3.1.3 空心菱形;同法二

package com.lingxing;

public class lingxing {
    public static void main(String[] args) {
        /*lingxing
         *
         *    *
         *   * *
         *  *   *
         *   * *
         *    *
         * */
        //上面三角形
        for (int j = 1; j <= 4; j++) {//控制行数
            for (int i = 1; i <= (9-j); i++) {//控制空格数量
                System.out.print(" ");
            }
            //*******
            for (int i = 1; i <= (2*j-1); i++) {//控制*个数
                if (i==1||i==(2*j-1)){
                    System.out.print("*");
                }else
                    System.out.print(" ");
            }
            //换行
            System.out.println();
        }

        //下面三角形
        for (int j = 1; j <= 3; j++) {//控制行数
            for (int i = 1; i <= (j+5); i++) {//控制空格数量
                System.out.print(" ");
            }
            //*******
            for (int i = 1; i <= (7-2*j); i++) {//控制*个数
                if (i==1||i==(7-2*j)){
                    System.out.print("*");
                }else
                System.out.print(" ");
            }
            //换行
            System.out.println();

        }        
    }
}

3.2 二重循环可以解决二元一次方程

案例:百鸡百钱

公鸡5钱一只,母鸡三钱一只,小鸡一钱三只,求百钱如何购得百鸡

public class chicken {
    public static void main(String[] args) {
        for (int x=1;x<(100/5);x++){
            for (int y=1;y<(100/3);y++){
                int z = 100 - x -y;//三元一次方程也可以写成二元的避免多一层循环嵌套,否则就写成下面这样的三层嵌套;当然也可以;不过容易出错
                
                if ((5*x+3*y+z/3==100)&&(z%3==0)){
                    System.out.println(x + "\t" + y + "\t" + z);
                }
            }
        }
    }
}
public class lingxing {
    public static void main(String[] args) {
        for (int x = 1; x < (100 / 5); x++) {
            for (int y = 1; y < (100 / 3); y++) {
                for (int z = 1; z < 100; z++) {
                    if ((x + y + z == 100) && (5 * x + 3 * y + z / 3 == 100) && (z % 3 == 0)) {
                        System.out.println(x + "\t" + y + "\t" + z);
                    }
                }
            }

        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值