Javaの基本(3つまたは4つ)

ユニット3

Java論理演算子の基本的な使用法

逻辑运算符:
   &(并且),|(或),!(非),^(异或),&&(短路与),||(短路或)
*注意:
   a.逻辑运算符一般用于连接boolean类型的表达式或者值。
   b.表达式:就是用运算符把常量或者变量连接起来的Java语法的式子
 结论:
 &逻辑与:有false则false
 |逻辑或:有true则true
 ^逻辑异或:相同为false,不同为true。
 !逻辑非:非false则true,非true则false.
 &&和&的区别:
 	a.最终结果都一样
 	b.&&具有短路效果。 左边如果是false则右边不执行。
 同理||和|的区别就是:
 	||具有短路效果,左边如果是true则右边不执行。  

Javaビット演算子の基本的な使用法

位运算符:
 &(与),|(或),^(异或),~(按位取反),<<(左移),>>(右移),>>>(无符号右移)
*注意:位运算是直接对二进制补码进行运算。运算效率高一些
结论:
	&:有0则0
	|:有1则1
	^:相同则0,不同则1
	~:按位取反  0变1 1变0 符号位也包含在内取反
	<<:左移        空位补0,被移除的最高位丢弃。
	>>:右移		 被移位的二进制最高位是0,右移后,空缺位补0;最高位是1,高位补1
	>>>:无符号右移   被移位二进制最高位无论是0或者1,空却位都用0补。
eg:a.正数的按位反: +9
	原码:00001001
	补码:00001001
	反码:00001001
	按位取反:1    1110110 补码
	        -          1
	      ———————————————— 
	        1    1110101 反码
	        1    0001010 原码
	最后结果是:   -10
	b.负数的按位取反: -9
	原码: 1   0001001
	反码: 1   1110110
    补码: 1   1110111
  负数的补码按位取反:0 0001000 的到正数  正数的原反补一样
  最后结果: 8
 *^位异或运算符的特点:一个数据被另一个数据位异或两次,该数本身不变。
 自己位异或自己是0  eg:8^8 结果是0
 *<< : 把<<左边的数据乘以2的移动次幂   eg:10<<3  结果10*2^3=80
 10  的补码   00001010
 左移三位:    01010000  64+16  
  >> : 把>>左边的数据除以2的移动次幂   eg:40>>3  结果40/2^3=5
  40 的补码   00101000
  右移三位:   00000101  4+1
值交换问题:
int a=10;
int b=20;
方式1:找一个中间变量  
int t;
t=a;
a=b;
b=t;
方式2:^位异或运算符的特点    一个数据被另一个数据位异或两次,该数本身不变
a=a^b;
b=a^b; //a^b^b   b=a
a=a^b; // a^b^a  a=b
方式3:
a=a+b;
b=a-b;
a=a-b;
方式4: 
b=(a+b)-(a=b);

Java三項演算子の基本的な使用法

三运运算符的格式:
	(关系表达式) ? 表达式1 : 表达式2;
	int a=(10>20)?30:50;   a=50
执行流程:
	计算括号内的表达式,如果位true,运算结果是30
					如果是false,运算结果是50

Javaキーボード入力の基本形式

为了让程序的数据更符合开发的数据,让程序灵活起来
a.导包
格式:import java.util.Scanner;   写在class上面
b.创建键盘录入对象
格式:  Scanner sc = new Scanner(System.in);
c.通过对象获取数据
格式:  int x =sc.nextInt();

javaシーケンシャル構造ステートメント

流程控制语句:
	在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的。也就是说程序的流程对运行结果有直接影响。所以,我们必须清楚每条语句的执行流程。而且,很多时候我们要通过控制语句的执行顺序来实现我们要完成的功能
流程控制语句的分类:
    顺序结构
    选则结构
    循环结构
  顺序结构就是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行的。
	总的来说:写在前面的先执行,写在后面的后执行
    执行流程:从上往下,依次执行

javaselect構造ifステートメント

也被称为分支结构
	选择结构有特定的语法规则,代码要执行具体的逻辑运算进行判断
	逻辑运算的结果有两个,所以产生选择,按照不同的选择执行不同的代码
选择结构的分类:
	if语句
	switch语句
if语句有三种格式:
格式1:    
if(比较表达式或者是boolean类型的值){
    		语句体;
	}
执行流程:执行括号里表达式如果是true就执行语句体,false则跳过
格式2: 
 	if(比较表达式){
        语句体1;
 	}else{
        语句体2
 	}
 执行流程:执行括号里表达式如果是true就执行语句体1,false则执行语句体2
 格式3:
 if(比较表达式){
     语句体1;
 }else if(比较表达式2){
     语句体2;
 }else if(比较表达式3){
     语句体3;
 }
 ...
 else{
     语句体n+1;
 }
 执行流程:执行括号里的表达式如果是true就执行语句体1结束if语句。
 false则执行表达式2如果是true就执行语句体2结束if语句。
 false则执行表达式3如果是true就执行语句体3结束if语句。
 .....
 如果都是false就执行else里的语句体n+1
 三元运算符与if语句的格式2:
 	三元运算符实现的,都可以采用if语句实现,反之不成立
 	当if语句控制的操作是一个输出语句的时候就不能用三元运算符。
 	因为三元运算符是一个运算符,运算符操作完毕就应该就有一个结果。
 总计:
 	a.比较表达式无论简单还是复杂,结果必须是boolean类型
 	b.if语句控制的语句体如果是一条语句大括号可以省略,多条语句则大括号省略不了 	

javaselect構造体のswitchステートメント

switch语句的表达式:
	switch(表达式){
        case 值1:
        	语句体1;
        	break;
        case 值2:
        	语句体2;
        	break;
        case 值3:
        	语句体3;
        	break;
        ...
        default:
        	语句体n+1;
        	break;
	}
switch语句的格式解释:
	a.表达式取值:byte,short,int,char  JDK5以后可以是枚举  JDK7以后可以是String
	b.case后面跟的是要和表达式进行比较的值
	c.语句体部分可以是一条或者多条语句
	d.break表示中断,意思就是结束switch语句
	e.default语句表示所有情况都不匹配的时候,就执行该语句,和if语句里的else相似
执行流程:
	先计算表达式的值,然后和case后面的值匹配,如果匹配成功就执行对应的语句,遇到break就会结束,否则执行default控制的语句。
*注意:
	a.case后面只能是常量不能是变量,而且多个case后面的值不能出现相同的值
	b.default可以省略但不建议,因为它的作用是对不正确的情况给出提示
	c.break可以省略,但是结果可能是我们不想要的。会出现一个现象:case穿透
	d.default可以在任意位置。但是建议在最后

javaselectステートメントifおよびswitchステートメント

if语句使用的场景:
	针对结果是boolean类型的判断
	针对一个范围的判断
	针对几个常量值的判断
switch语句使用的场景:
	针对几个常量值的判断

javaswitchステートメントとifステートメントの場合

//if语句案列1:
//两个数据中的最大值
	class IfDemo1{
    
    
    public static void main(String[] args){
    
    
    	int a=10;
    	int b=20;
    	int max=0;
        if(a>b){
    
    
        	max=a;
            }else{
    
    
            max=b;
            }
        System.out.println("最大值是:"+max);
    }
	}
if语句案列2:
/*键盘录入一个成绩,判断并输出成绩的等级
90-100 优秀
80-89 良
70-79 中
60-69 及格
0-59 差  */
import java.util.Scanner;
class IfDemo2{
    
    
    public static void main(String[] args){
    
    
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入你的成绩:");
        int a=sc.nextInt();
        if(a>=90&&a<=100){
    
    
            System.out.println("优秀");
        }else if(a>=80&&a<=89){
    
    
            System.out.println("良");
        }else if(a>=70&&a<=79){
    
    
            System.out.println("中");
        }else if(a>=60&&a<=69){
    
    
            System.out.println("及格");
        }else if(a>=0&&a<=59){
    
    
            System.out.println("差");
        }else{
    
    
            
            System.out.println("请重新输入你的成绩:");
        }
    }
}
//Switch语句案列:
//我们开设了挖掘机专业,美容美发专业,JAVA专业,机械自动化专业
import java.util.Scanner;
class SwitchDmeo{
    
    
    public static void main(String[] args){
    
    
        Scanner sc = new Scanner(System.in);
        System.out.println("你是什么专业的 A挖掘机专业B美容美发专业C JAVA专业D机械自动化专业");
        String a=sc.next();
        switch(a){
    
    
            case "A":
                System.out.println("挖掘机专业");
                break;
            case "B":
                System.out.println("美容美发专业");
                break;
            case "c":
                System.out.println("JAVA专业");
                break;
            case "D":
                System.out.println("机械自动化");
                break;
            default:
                System.out.println("请重新输入");
                break;
        }
    }
}

ユニット4

Javaループ構造とforステートメントの概要

循环语句在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复执行这个循环体时,需要在合适的时候把循环判断条件修改位false,从而结束循环,否则循环将一直执行下去,形成死循环
分类:
	for循环
	while循环
for循环语句的格式:
	for(初始化表达式;判断条件语句;控制条件语句){
        循环体语句;
	}
执行流程:
	1.执行初始化表达式语句
	2.执行判断条件语句,看起返回值是true还是false
		如果是true,就继续执行
		如果是false,就结束循环
	3.进入循环体语句并执行
	4.执行控制语句
	5.回到第二步继续执行

javaループ構造whileステートメント

while语句的格式:
while循环的基本格式:
	while(判断条件语句){
        循环体语句;
	}
完整格式:
初始化条件语句;
while(判断条件语句){
    循环体语句;
    控制条件语句;
}
执行流程:
	1.执行初始化条件
	2.执行判断语句,看其返回值是true还是false
		如果是true就继续执行
		如果是false则跳出循环
	3.执行循环体语句
	4.执行控制条件语句
	5.回到2继续执行

javaループ構造do ... whileステートメント

do...while语句的格式:
	do{
        循环体语句;
	}while(判断条件语句);
完整格式:
	初始化条件语句;
	do{
        循环体语句;
        控制条件语句;
	}while(判断条件语句);
执行流程:
	1.执行初始化条件语句
	2.执行循环体语句
	3.执行控制语句
	4.判断条件语句,看其返回值是true还是false
		如果是true就继续执行
		如果是false跳出循环
	5.回到2

Javaループエージェンシーケース

//案列1:需求:在控制台输出所有的”水仙花数”

	//所谓的水仙花数是指一个三位数,其各位数字的立方和等于该数本身。
	//举例:153就是一个水仙花数。
	//153 = 1*1*1 + 5*5*5 + 3*3*3 = 1 + 125 + 27 = 153
    class  ForDemo{
    
    
        public static void main(String[] args){
    
    
            for(int i=100;i<999;i++){
    
    
                int a=i/100%10;
                int b=i/10%10;
                int c=i/1%10;
                if(a*a*a+b*b*b+c*c*c==i){
    
    
                    System.out.println("水仙花数:"+i);
                }
            }
        }
    }
//案列2:
//统计思想:	统计”水仙花数”共有多少个(用while循环结构)
    class WhileDemo{
    
    
        public static void main(String[] args){
    
    
            int i=100;
            int count=0;
            while(i>=100&&i<=999){
    
    
                int a=i/100%10;
                int b=i/10%10;
                int c=i/1%10;
                if(a*a*a+b*b*b+c*c*c==i){
    
    
                    System.out.println("水仙花数:"+i);
                    count++;
                }
                i++;
            }
            System.out.println("水仙花个数:"+count);
        }
    }
//案列3:
//用do...while循环结构 来统计水仙花数
class DoWhileDemo{
    
    
	public static void main(String[] args){
    
    
            int i=100;
            int count=0;
            do{
    
    
                int a=i/100%10;
                int b=i/10%10;
                int c=i/1%10;
    			int counter=0;
    			if(a*a*a+b*b*b+c*c*c==i){
    
    
                    System.out.println("水仙花数:"+i);
                    count++;
                }
                i++;
            }while(i>=100&&i<=999);
            System.out.println("水仙花个数:"+count);
  }
}
//三种循环语句的区别:
	//1.do...while循环至少执行一次循环体,而for,while循环必须先判断条件是否成立,然后决定是否执行循环体
	//2.a.如果你想在循环体结束后,继续使用控制条件的那个变量,用while循环,否则用for循环。不知道用for循环
		//因为变量及早的从内存中消失可以提高内存的使用效率
	//b.建议优先考虑for循环,然后是while循环,最后是do...while循环

Java制御ジャンプステートメント

什么是跳转语句:
	比如说,我想在某个循环执行到某一步的时候就结束,现在就做不了这件事情
	为了弥补这个缺陷,Java就提供了break,continue和return来实现控制语句的跳转和中断
分类
	break    中断
	continue  继续
	return   返回
break的使用场景:
	1.在选择结构switch语句中
	2.在循环语句中
	注意:离开使用场景的存在是没有意义的
作用:
	1.退出单层循环
	2.退出多层循环(几乎不使用)
		要想实现这个效果,就必须知道一个东西,带标签的语句;
		格式: 标签名:语句
continue的使用场景
	在循环语句中
作用
	跳出一次循环,执行下一步操作
return的作用
	return 就是退出一个方法
	跳转到上层调用的方法。
案列演示:
	return:		结束当前方法
	break:		结束单层循环
	continue:	结束当前循环,执行下一次循环

Javaメソッドの概要と形式の説明

为了解决代码重复编写的问题,可以将重复编写代码的代码提取出来放在一个{}中,并为这段代码七个名字
这样在每次重复编写代码的地方通过调用这个名字就可以了。上述过程中,所提取出来的代码可以被看作是程序中定义的一个方法
什么是方法
	方法就是完成特定功能的代码块
	在很多语言中都有函数的定义,在Java中,我们称之为方法
方法的格式
	修饰符 返回值类型 方法名(参数类型 参数1,参数类型 参数2....){
        方法体;
        return 返回值;
	}
方法格式的详细说明
	1.修饰符     public static ...           
	2.返回值类型   用于限定返回值的数据类型
	3.方法名     就是一个名称,它的存在是为了方便我们调用方法
	4.参数类型    限定调用方法时传入参数的数据类型
	5.参数名     就是一个变量,接受调用方法时传入的参数
					                        这个参数被称之为形式参数,它的作用是用来接受实际参数的。
	6.方法体       完成功能的代码
    7.return      结束方法以及返回方法指定类型的值
    8.返回值       就是功能的结果,由return带回,带给调用者
如何写一个方法
	两个明确:1.返回值类型    明确功能结果的数据类型
			2.参数列表     你要传递几个参数,以及每一个参数的数据列表
方法调用(有明确返回值的调用)
	1.单独调用	一般来说没有意义,所以不推荐
	2.赋值调用	推荐方法
	3.输出调用   但是不够好,因为我们可能需要针对结果进行进一步的操作
*注意:
	1.方法不调用不执行
	2.方法与方法是平级关系,不能嵌套定义
	3.方法定义的时候参数之间用逗号隔开
	4.方法调用的时候不用在传递数据类型
	5.如果方法有明确的返回值,一定要由retur带回一个值

Javaメソッドの場合

//根据键盘录入的数据输出对应的乘法表
 class Method{
    
    
     public static void main(String[] args){
    
    
		multiplication();
   }
     public static void multiplication(){
    
    
        for(int i=1;i<=9;i++){
    
    
           for(int j=1;j<=i;j++){
    
    
              System.out.print(j+"*"+i+"="+i*j+"\t");
        }
        System.out.println("\n");
     }
   }
}

Javaメソッドのオーバーロード

重载:
	在同一个类中,允许存在一个以上的同名方法,只要它们的参数列表不同,与返回值无关。
	参数列表不同:
		1.参数个数不同
		2.参数类型不同

おすすめ

転載: blog.csdn.net/m0_51717449/article/details/109666207