Java流程控制和方法

用户交互Scanner

Java.util.Scanner是Java5的新特征

基本语法:Scanner s = new Scanner(System.in)

获取:next()  nextLine() nextInt()

判断:hasNext()  hasNextLine() hasNextInt()

public class Test {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println();
if(scanner.hasNext()){
String str = scanner.next();
System.out.println(str);
}
scanner.close();
}
}

注意:next()一定要读取到有效字符才会停止,不能得到带空格的字符串,读取到有效字符之后空白才成为结束符

           nextLine()以enter作为结束符

 

流程控制

1、if-else if-else

2、switch

switch(expression){

  case value :

    ......

    break;

  default :

    ......

}

注意:变量类型是byte short int char;JavaSE7开始有String;case标签必须是字符串常量或字面量

反编译:将.class翻译成.java,在文件夹里将.class复制到.java中

               项目结构->project->找到地址(存放.class文件)

3、while

4、do while

do{

}while();

5、for

增强的for循环,Java5引入

int[] nums = {10,20,30};
for(int x:nums){
System.out.println(x);
}

6、break continue goto

break退出整个循环,continue退出单次循环过程

goto用法:label: 语句; goto:label;

练习:打印三角形

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是值传递,即在调用函数时将实际参数复制一份传递到函数中,不会影响到实际参数。

                                引用传递:引用传递就是直接把内存地址传过去,java中的引用类型是引用传递;

                                                  因为引用类型是存放在堆中,地址存放在栈中,传参时传递的是地址的复制;

 

方法的重载

相同的函数名称,不同的形参

规则:1、方法名必须相同;2、参数列表必须不同;3、仅返回类型不同不能成为重载

 

方法的可变参数

命令行传参:cmd执行.class时要在src中执行,包名.类名

可变参数:...只能放在最后面,调用时可以直接输入多个参数,或输入一个数组new int[]{1,2,3}

public static void test(int... nums){

 

递归

递归头(终止语句)和递归体

流程:边界条件->前阶段->返回阶段

 

不同修饰符(static)的方法调用问题

static定义的方法如何调用非static定义的方法

1、new一个实例,然后调用

2、将非static改为static

 原因:static修饰的方法会在很早初始,此时一般方法还未读入,会报错

posted @ 2021-02-24 12:46  头秃1997  阅读(73)  评论(0)    收藏  举报