Java基础学习-3

1、Scanner的使用

        实现用户数据的交互,用户通过终端输入数据

        注意:使用Scanner需要导包。即import java.util.Scanner;

        如果对类型没有要求,直接用.next();

                next();//读取用户输入的字符串数据

                nextLine();//读取用户输入的一行数据 以换行符(回车)作为分隔

                nextInt();//读取用户输入的int整型数据 ,需要注意输入的数据类型要匹配;                        

                nextDouble();//读取用户输入的double浮点型数据

注意:如果在nextLine();操作前使用了nextInt();nextDouble();等方法,nextLine()方法会读取到上面方法所输入的换行符

示例:

import java.util.Scanner;
public class Scanner_Date {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入成绩:");//如果对类型没有要求,直接用.next();
        //String input = sc.next();//读取字符串数据,会阻塞程序,默认结束为回车
        //String input = sc.nextLine();//读取一行,会阻塞程序,默认结束为回车
        //int input = sc.nextInt();//读取int类型数据,会阻塞程序,默认结束为回车
        //double input = sc.nextDouble();//读取double类型数据,会阻塞程序,默认结束为回车
        //System.out.println("input="+input);

        //如果在nextLine();操作前使用了nextInt();nextDouble();等方法,
        //+nextLine()方法会读取到上面方法所输入的换行符。
        //double input = sc.nextDouble();
        //int input1 = sc.nextInt();
        //String input2 = sc.next();
        //String a = "a";
        //System.out.println(a.equals(input2));//字符串比较用equals()

        //分隔符的修改.useDelimiter()
        sc.useDelimiter(";");
        String input3 = sc.next();
        System.out.println(input3);
    }
}

2、if语句的使用

        2.1、单分支判断语句

                if(条件){执行体}

//单分支语句
int score = 80;
if(score>60){
    System.out.println("a");
}

        2.2、双分支判断语句

                if(条件){执行体}

                        else{执行体}

//双分支
if(score>60){
    System.out.println("a");
}else{
    System.out.println("c");
}

        2.3、多分支判断语句

                if(条件){执行体}

                else if(条件){执行体}

                else if(条件){执行体}

                 ......

                else{执行体}

//多分支
if(score>90){
    System.out.println("a");
}else if(score>80){
    System.out.println("b");
}else if(score>60){
    System.out.println("c");
}else{
    System.out.println("d");
}

        注意事项:

                if 和 else if 以及 else 中 如果没有{},则默认他下面的第一行为语句体;

                else if以及else必须要和if是成对匹配的;

        if判断语句的使用:通过键盘输入一个年份,比如1990,判断是否为闰年

                        --能够整除400

                        --能整除4且不能整除100

        

import java.util.Scanner;
public class Test{
    public static void main(String[] args){
        //通过键盘输入一个年份,比如1990,判断是否为闰年
        //能够整除400 能整除4且不能整除100
        //创建Scanner对象 
        Scanner year = new Scanner(System.in);
        //获取年份数据并打印 
        System.out.print("输入一个年份:");
        int y = year.nextInt();
        System.out.print(y+"年");
        //判断
        //通过短路或(判断一个)进行判断if((y%400) || (y%4==0&&y%100!=0))
        if(y%4==0&&y%100!=0){
            System.out.println("是普通闰年");
        }else if(y%400==0){
            System.out.println("是世纪闰年");
        }else{
            System.out.println("不是闰年");
        }
    }
}

3、switch语句的使用

        key类型可以为->1.5版本后支持 byte short int char 1.7版本后增加 String enum

        语法:

                switch (key) {

                        case value:

                                break;

                        default:

                                break;

                        }

        说明:

                - -case用于匹配数值

                - -break用于跳出switch语句

                - -default用于设置没有匹配成功的默认操作

示例:

public enum Color{//枚举
    RED,YELLOW,BLANK,GREEN
}


public class Switch_Break {
    public static void main(String[] args) {
     Color item = Color.YELLOW;
     switch (item){
         case RED:{
             System.out.println("RED");
             break;
         }
         case BLANK:{
             System.out.println("BLANK");
             break;
         }
         case GREEN:{
             System.out.println("GREEN");
             break;
         }
         case YELLOW:{
             System.out.println("YELLOW");
             break;
         }
         default:{//不需要break
             System.out.println("COLOR NOT IN IT");
         }
     }
}

4、输出方法的使用

        --print 不换行输出

        --println换行输出

        --printf:格式化输出 中间用(,)分割

                格式字符用以指定输出项的数据类型和输出格式。 

                        d格式:用来输出十进制整数。有以下几种用法: 

                                  %d:按整型数据的实际长度输出。 

                                   %md:m为指定的输出字段的宽度。如果数据的位数小于m,则左端补以空格,若大于m,则按实际位数输出。 

                        o格式:以无符号八进制形式输出整数。也可以指定字段宽度用“%mo”格式输出。

                        s格式:用来输出一个字符串。有几中用法 

                                  %s:例如:printf("%s", "CHINA")输出"CHINA"字符串(不包括双引号)。 

                        f格式:用来输出实数(包括单、双精度),以小数形式输出。有以下几种用法: 

                                  %f:不指定宽度,整数部分全部输出并输出6位小数。 

                                  %m.nf:输出共占m个小数 ,其中有n位小数,如数值宽度小于m左端补空格。

                x格式:以无符号十六进制形式输出整数。同样也可以指定字段宽度用"%mx"格式输出。

                c格式:输出一个字符。

                \n 换行

                \t制表符

5、循环语句:循环中具备的要素->初始化的变量、条件、循环执行体、迭代

        5.1、while: 先判断再执行

int i=1 ;
while(i<=10){
    System.out.println(i);
    i++;
}

        5.2、do while 不管条件是否成立都会执行一次 如果条件成立则继续执行

int i=1 ;
do{//先执行再判断,至少执行一次
    System.out.println(i);
    i++;
}while(i<=10)

        5.3、for

                格式:for(初始化;条件;迭代)

int i=1 ;
for(int i = 1;i<=10;i++){//for(;i<=10;i++)
    System.out.println(i);
}
//for(;;){
//    if(i<=10){
//        System.out.println(i);    
//    }
//break;
//}

        5.4、foreach 遍历

                格式:for(数据源的类型  临时变量:数据源){执行体}

int [] arr = {1,2,3,4};
for(int item:arr){
    System.out.println(item); 
}

        5.5、循环的控制语句

                break语句:结束、退出循环

                continue语句:忽略当前循环,继续下一个循环操作

                 return语句:结束方法,不再执行剩下的所有操作

                label标签语句:

                        label标签是结合控制语句一起使用的

                        label语法格式: 标签名:

                示例:

public class ForControl {
    public static void main(String[] args) {
        //break
//        for (int i = 1; i <=10 ; i++) {
//            //break,当i==5时,循环结束
//            if (i==5){
//                break;
//            }
//            System.out.println(i);
//        }
        //continue
//        for (int i = 0; i <=10 ; i++) {
//            //当i=5时,跳过不输出5
//            if (i==5){
//                continue;
//            }
//            System.out.println(i);
//        }

        //return
//        for (int i = 0; i <=10; i++) {
//            if (i==5){
//                return;//结束方法
//            }
//            System.out.println(i);
//        }
//        for (int i = 0; i <=10 ; i++) {
//            System.out.println("i="+i);
//            for (int j = 0; j <=10 ; j++) {
//                if (j==5){
//                    //break;//结束内循环
//                    return;//结束内外循环
//                }
//                System.out.println(j);
//            }
//        }


        //label结束label标签的所有循环
        outside://外面,里面都可以
        //当k==5时,结束外循环
        for (int i = 0; i <=10 ; i++) {
            System.out.println("i="+i);
            for (int j = 0; j <=10 ; j++) {
                if (j==5){
                    //break outside;//结束外循环
                    //continue outside;//跳过内循环的5-10
                    continue ;//只跳过5
                }
                System.out.println(j);
            }
        }
    }
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值