Java学习日记03

Java流程控制:用户交互Scanner

语言程序的编写在后期的web制作应用外,对于前期的学习中我们想要实现程序与人的交互的话,在Java中为我们提供了个工具包中有 java.util.Scanner这样一个类,这是Java5中的新特征,用来获取相关自定义变量中用户的输入。

基本语法:

Scanner  scan  =new  Scanner(System.in);

通过new一个Scanner对象来接受用户的输入

Scanner两种重要的方法:

1、以 next 开头的方法:用于从输入源中获取下一个标记并返回相应的数据类型

常用的有:

  • next():从输入源中获取并返回一个字符串,默认以空格为分隔符,以回车 Enter 为结束符,回车 Enter 后的内容则放入缓冲区。
  • nextLine():从输入源中获取并返回一行字符串(以换行符为分隔符)。
  • nextInt():从输入源中获取并返回一个整数。
  • nextDouble():从输入源中获取并返回一个浮点数。
  • nextBoolean():从输入源中获取并返回一个布尔值(“true” 或 “false”)。
     

注:

next() 和 nextLine() 在处理方式和使用场景方面有一些区别:

next() 方法读取的字符串不包含分隔符,如果输入中存在多个以空格分隔的单词,next() 方法只会返回第一个单词,因此不能得到带有空格的字符串。

nextLine() 方法从输入源中读取并返回一整行字符串,包括换行符 \n 在内,会读取输入源中的全部内容直到遇到换行符,或者输入结束。

2、以 hasNext 开头的方法:用于检查输入源中是否还有下一个标记可用

常用的有:

  • hasNext():如果输入源中还有下一个标记(非空格字符),返回 true。
  • hasNextLine():如果输入源中还有下一行(非空行),返回 true。
  • hasNextInt():如果输入源中还有下一个整数,返回 true。
  • hasNextDouble():如果输入源中还有下一个浮点数,返回 true。
  • hasNextBoolean():如果输入源中还有下一个布尔值,返回 true。
     

算法结构

1、顺序结构

顺序结构是Java语句中最基本的结构,也是各种语言的基本结构,自上向下,依次执行。

2、选择结构

选择结构是Java中最重要且最基本的语句结构之一。

2.1 if单选择结构

选择判断中只有一个选择判断

基本语法:

if(布尔表达式){

}

代码示例:

import java.util.Scanner;

class java1 {
  public static void main(String[] args) {
    Scanner scan=new Scanner(System.in);
    int a =scan.nextInt();
    int b=10;
    if(a<b){
      System.out.println(a);
    }
    
  }
}


//输入5时候,满足条件则打印出a;
//不满足条件则该条判断语句会被跳过并不会有输出结果

2.2 if-else 双选择结构

对于上述的单选择结构,其实双选则结构更像是一个条件的结果,或者直白点就是一场胜负,只有两种选择结果。

基本语法:

if(布尔表达式){

   //如果布尔表达式为true;

}else{

   //否则就是布尔表达式为false;

}

代码示例:

import java.util.Scanner;

class java1 {
  public static void main(String[] args) {
    Scanner scan=new Scanner(System.in);
    int score =scan.nextInt();
    int b =60;
    if(score<b){
      System.out.println("不及格");
    }else{
      System.out.println("及格");
    }
    
  }
}

//以成绩及格与否为例,<60会输出不及格;反之则会输出及格

2.3 if-else if -else 多选择结构

基本语法:

if(布尔表达式1){

   //如果布尔表达式1为true;

}else if(布尔表达式2){

   //如果布尔表达式2为true;

}else if(布尔表达式3){

   //如果布尔表达式3为true;

}else{

   //否则就是布尔表达式全都为false;

}

实例代码:

import java.util.Scanner;
public class IfDemo01 {
    public static void main(String[] args) {
        //定义成绩
        int result;
        //提示用户输入成绩
        System.out.println("请输入你的成绩:");
        //创建scanner对象
        Scanner scanner = new Scanner(System.in);
        //获得用户输入的成绩
        result = scanner.nextInt();
        //用if判断用户输入成绩的等级,并输出
        if(result >=90 && result <= 100){
            System.out.println("A");
        }else if(result >= 80){
            System.out.println("B");
        }else if(result >= 70){
            System.out.println("C");
        }else if(result >= 60){
            System.out.println("D");
        }else if(result >= 0){
            System.out.println("E");
        }else{
            System.out.println("请输入正确的成绩格式");
        }
        //释放scanner
        scanner.close();
    }
}

2.4if嵌套选择结构

基本语法:

if(表达式1){
        //表达式1为true时执行的语句
    if(表达式2){
        //表达式1为true,表达式2为true时执行的语句
    }else{
        //表达式1为true,表达式2为false时执行的语句
    }
}else{
    //表达式1为false时执行的语句
}

import java.util.Scanner;

public class IfDemo02 {
    public static void main(String[] args) {
        String str;
        int id;
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入你选的系别:");
        str = scanner.next();
        if(str.equals("电子信息系")){   //equals用于字符串类型的等值比较
            System.out.println("请输入你选择的课程");
            id = scanner.nextInt();
            if(id == 123){
                System.out.println("欢迎加入电子系123的课程");
            }else{
                System.out.println("没有该课程");
            }
        }else{
            System.out.println("没得其他系,嘿嘿");
        }

        scanner.close();

    }
}


 

2.5 switch选择结构

其实对于多结构来说,还有一个实现的结构方法,便是我要介绍到的switch case语句。

switch case语句判断一个变量与一系列中某个值是否相等,每一个值则称之为一个分支。

基本语法:

switch(表达式){

     case 常量1:   //常量必须为字符串常量或者字面量数据类型

     执行相关语句;

     break; //该部分根据代码要求来判断是否break中断,还是continue继续

     

    case 常量2:

     执行相关语句;

     break; //该部分根据代码要求来判断是否break中断,还是continue继续

 

     ..................//你可以设置任意数量的case语句

     default 常量n+1:

     执行相关语句;

     break; //该部分根据代码要求来判断是否break中断,还是continue继续

}

代码示例:

import java.util.Scanner;

 class IfDemo02 {
    public static void main(String[] args) {
       Scanner scan=new Scanner(System.in);
      int score=scan.nextInt();
      switch(score/10){
        case 9:
          System.out.println("A+");
          break;
        case 8:
          System.out.println("A");
          break;
        case 7:
          System.out.println("B");
          break;
         case 6:
          System.out.println("C");
          break;
        default:
          System.out.println("D");
          break;
      }

        scan.close();

    }
}

3、循环结构

3.1   while 循环结构

while 循环是java中最基础的循环结构,只要条件判断为true,那么这个程序就会一直循环下去

但大多数情况下我们需要让他停止下来,因此需要在循环体中添加一个表达式失效的方式来结束

执行规律:
        1)首先执行一次初始值;
        2)然后判断条件,如果条件为true,执行循环操作代码块,循环操作代码块执行完,执行迭代代码,迭代代码执行完,再去判断循环条件
     注意:
        1)初始值代码只执行一次
        2)迭代代码用来改变初始值,为了让循环条件在某个时刻不再满足,结束循环,如果没有迭代代码。循环会进入死循环
        3)如果第一次判断循环条件不满足,那么循环操作一次都不会执行

语法结构:

初始值;
 while(条件){
   //循环操作代码块
   //迭代代码
        }

代码实例:

import java.util.Scanner;
public class Main{
  public static void main(String[] args){
  Scanner scan=new Scanner(System.in);
	  int i=10;
	  int a=0;
	  while(a<i){
	    a++;
		System.out.println(a);
	  }
  }
}

3.2   do ....while 循环结构

与while循环结构不同之处在于,do ....while循环至少会执行一次

while循环是先判断后执行,do ....while循环是先执行后判断

语法结构:

初始值;

初始值代码;
    do{
      //循环操作代码
      //迭代代码
 }while(循环条件);

代码示例:

public static void main(String[] args) {
        //使用do while 循环输出1-100之间所有的整数
        //初始值
        int i=1;
        do{//循环操作
            System.out.println(i);
            //迭代操作
            i++;
        }while (i<=100);//循环条件
    }
}

3.3   for 循环结构

for循环是一种支持迭代的通用结构,是最有效,最灵活的,也是最常用的循环结构,该执行次数是在执行之前就已经确认的

语法结构:

for(初始化; ;循环条件;迭代语句){

  //循环句子;

}

  • 执行流程:
    ①执行初始化语句
    ②执行条件判断语句,看其结果是true还是false
    如果是false,循环结束
    如果是true,继续执行
    ③执行循环体语句
    ④执行迭代语句
    ⑤回到②继续

代码示例:

public static void main(String[] args) {
 
        //使用for循环输出100遍好好学习,天天向上
        for(int i =1;i<=100;i++){
            System.out.println("第"+i+"遍:好好学习,天天向上");
        }
 
        System.out.println("输出完毕");
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值