控制台输入:

控制台输入:仅在javaSE中测试程序时使用,向程序中实现输入数据,java中提供了一个类Scanner,使用类Scanner类去创建一个对象(具体的可以使用的,对象在内存中存储)时,需要System.in来获得输入流对象,因为实际上还是 System.in在取得用户输入。

Scanner的next()方法用以取得用户输入的字符串;nextInt()将取得的输入字符串转换为整数类型;同样,nextFloat()转换成浮点型;nextBoolean()转换成布尔型。

测试案例:

package text1;

import java.util.Scanner;

public class Demo {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入姓名:");
        //读入的内容是一个字符串,程序执行到此行时,会等待控制台输入,按回车键表示输入完成,程序继续向下执行。
        String name = scanner.next();
        System.out.println("请输入年龄:");
        //读入的是一个整数
        int age = scanner.nextInt();
        System.out.println("姓名:"+name+" 年龄:"+age);
    }
}

流程控制语句: 

1.条件语句:

if选择语句:不建议if,else语句块省略{},省略后if,else只对紧跟着的内行代码有效。

基本的if条件结构:

if(条件表达式){
  条件为真执行代码块
}

if-else条件结构

if(条件表达式){
  条件为真执行代码块
}
else{
  条件为假执行代码块
}

if-else语句的另一种形式:

if(条件表达式1){
  
}
else if(条件表达式2){//满足一个条件,流程自动结束
  
}
else if(条件表达式n){
  
}

swith语句:多分支选择语句,根据表达式的值,来执行多个操作中的一个。

表达式值类型:byte、short、int、char、枚举类型、String类型。

选项值1,2,3类型需要和表达式的类型一致,值1,2,3必须是字面量(常量),且值不能重复。

匹配的case语句块执行完成后,如果没有break结束,则继续向下执行下一个case,直到遇到break;如果没有与表达式匹配的选项,则执行default语句,没有default则结束swich语句。

switch(表达式){
     case 值1 :代码块;
     break;
     case 值2 :代码块;
     break;
     ...
     case 值n :代码块;
     break;
     default:默认代码块;
}

if与switch的区别与联系:

switch可以实现的,if都可以实现,if条件更灵活,switch适用于一些固定选项的选择,在固定选项执行中,效率更高。

2.循环语句:

功能:在某些条件满足的情况下,一直重复做某些事情。

循环语法格式

循环变量初始化;进入循环的条件;循环体(循环中要执行的代码);循环变量的更新。

循环语句分类

while、do while、for;

while:先条件判断,不成立不能进入到循环中。

while(进入循环体的条件){
      循环体
}

do{ }while():先执行,后判断,即使条件不成立,也至少执行一次。

do { 
    语句1;语句2;语句n;
}
while(逻辑表达式);

for语句:首先计算表达式1,接着执行表达式2,若表达式2的值 = true,则执行循环语句,接着计算表达式3,再判断表达式2的值;依此重复下去,直到表达式2的值=false。

public static void main(String args[]) { 
     for (int i = 1; i <= 10; i++) { 
          System.out.println(“i=" + i); 
    } 
}

break:用于终止某个语句块的执行,在循环语句体中,可以强行退出循环。

int stop = 4; 
for (int i = 1; i <= 10; i++) { 
     //当i等于stop时,退出循环 
     if (i == stop){
             break;
        } 
    System.out.println(" i= " + i);
}

continue:用于终止某次循环过程,跳过循环体中 continue 语句下 面未执行的循环,开始下一次循环过程。

for(int i=0;i<10;i++){
    if(i==5){
         continue;
    }
    System.out.println(i);
}

循环嵌套:

将一个循环放在另一个循环体内,就形成了嵌套循环。其中,for ,while ,do…while均可以作为外层循环和内层循环。

实质上,嵌套循环就是把内层循环当成外层循环的循环体。当只有内层 循环的循环条件为false时,才会完全跳出内层循环,才可结束外层的当次循环,开始下一次的循环。

结束外层循环:如果需要从多层循环跳出,则需要使用标签,定义一个标签,如label,然后在需要跳出的地方,用break label就行了。

案例:

//输出**
//在内层循环中,结束外层循环,可以使用标签,为循环做一个标记
outer:for(int i = 1;i<=4;i++){
          for(int j = 1;j<=5;j++){
          if(j==3){
              //break只能终止当前所在内层循环
              break outer;
          }
           System.out.println("*");
        }
        System.out.println();
}

Java中的方法: 

return语句用于从当前执行的方法中退出, 返回到调用该方法的语句处继续执行。

方法:类似于C语言中的函数,是解决一类问题的步骤的有序组合,属于类或者对象,定义一个名字,通过类名或者对象直接调用。

需要多次使用的代码就可以定义为一个方法,多次调用就可以。

例如:

取款()
存款()
查询()

语法格式:

[访问权限修饰符(public) 修饰符] [返回值类型] 方法名(形参类型 参数名){
    
}


修饰符:定义了该方法的访问类型。 形式参数: 在方法被调用时用于接收外界输入的数据。 实参:调用方法时实际传给方法的数据。 返回值:方法在执行完毕后返还给调用它的环境的数据。 返回值类型:如int等,void表示方法没有返回值。


案例:

public class MethodDemo1 {
  //定义一个方法,用来专门打印乘法口诀表
     public void multi(){
         for (int i = 1; i <=9 ; i++) {
             for (int j = 1; j <= i ; j++) {
                 System.out.print(j+"*"+i+"="+(i*j)+" ");
             }
             System.out.println();
         }
     }
   //打印row行的直角三角形
   //形参: 数据类型 参数名(可以自定义参数名)
     public void print(int row){
         for (int i = 1; i <=row ; i++) {
             for (int j = 1; j <=i ; j++) {
                 System.out.print("*");
             }
             System.out.println();
         }
     }
    //两位整数加法运算
    //方法如果有返回值,必须声明返回值的类型
     public int compute(int a,int b){
         int c = a+b;
         return c;//从方法中向调用处返回一个结果
     }

     public void test(){
         int a = 10;
         int b = 5;
         if(a>b){
             System.out.println("a>b");
             return;//return 后面没有值的时候,只表示方法终止,不表示方法有返回值
         }
         //下行代码不执行
         System.out.println("aaaaaaaaaa");
     }

    public void test1(){
        for (int i = 0; i < 10; i++) {
            if(i==5){
                return;
            }
            System.out.println(i);//0 1 2 3 4
        }
    }
}

注意:①static修饰方法属于类,可以直接通过类名调用;

           ②不加static修饰,方法属于对象,需要通过对象调用。

public class Run {

    public static void main(String[] args) {
     //打印乘法口诀表
     //加static修饰时可以通过类名直接调用
     //MethodDemo1.multi();
     //方法没有加static修饰的方法需要创建对象来调用
     //创建MethodDemo1类的一个对象(具体的一个实际存在的实例)
          MethodDemo1 m =  new MethodDemo1();
               //m.multi();
               //m.print(50);

              byte a  = 10;
              long res = m.compute(a,5);
              System.out.println(res);

              m.test();
              m.test1();

    }
}

return语句:

return语句用于从当前执行的方法中退出, 返回到调用该方法的语句处继续执行。

有两种格式:

//将表达式的值返回
return 表达式; 
//不返回任何值,当方法说明中用void声明无返回值时, 可以使用这种格式,此类return语句有时可省略
return;