Java学习day02:输入输出、三目运算符、循环结构

声明:该专栏本人重新过一遍java知识点时候的笔记汇总,主要是每天的知识点+题解,算是让自己巩固复习,也希望能给初学的朋友们一点帮助,大佬们不喜勿喷(抱拳了老铁!)


往期回顾

Java学习day01:数据类型、运算符、分支结构-CSDN博客

Java学习:输入输出、三目运算符、循环结构

一、输入输出

1.控制台获取数据:Scanner

1、导包:import.java.util.Scanner

2、创建scanner对象:Scanner sc =new Scanner(System.in)

3、获取控制台的数据并赋值给变量

各种类型的变量:
1.int——nextInt()
2.double——nextDouble()
3.float——nextFloat()
4.string——String.next()/String.nextLine()
5.char——String.nextLine().charAt(0)//字符是在字符串的基础根据索引获取的

2.控制台输出数据:System.out.println();


二、三目运算符

语法格式:数据类型  变量名=(表达式)?values1:values2;

如果表达式的值为true,把values1的值赋值给变量,否则把values2的值赋值给变量

如果出现三目运算符多个冒号连用,直接按顺序看就是。

比如:

          int a=5;
          int b=a>10?12:a<2?10:11;
          System.out.println(b);

最后的结果是11,相当于把(a<2?10:11)看成一个整体


三、循环结构

1.原因:

大量相同代码会导致代码臃肿、阅读性差、可维护性差

2.条件:

1初始化条件、2初始化条件、3终止条件

3.分类:

3.1while循环

while(){
语句体
}

先判断while括号里的表达式,如果为真则执行语句体,执行完后再次判断,为真则继续执行,为假则退出不再执行 

3.2do-while(几乎不用)

do{
   语句体
}while(布尔表达式)

 先执行一次do的语句体再判断表达式的真假,为真继续执行,为假推出,意味着不管真假,do的语句体至少执行一次

3.3for循环

for(初始化条件;终止条件;循环条件){
表达式;
}

 先执行初始化条件,再执行终止条件判断是否为true,最后再执行循环条件

一些小案例:比如打印100内的偶数、打印100内7的倍数和带7的数、打印1-100的和等,都比较简单,就不再赘述

3.4循环嵌套

循环里面套循环,两个循环重要在于搞清楚运行过程,第一个循环进去了,是需要把第二个循环跑完一遍再走第一个循环的第二次。实在无法理解的拿笔写一写,模拟运行过程。


以上就是今天的知识点,下面做题:

四、习题

1.题目

分支题()
1、定义一个int类型的变量为x并赋值为5,如果x<10,则让x实现自增,并输出x最后的值。
2、随意输入一个数字a,若a>20,输出a的值。
3、编程输入整数a和b,若a或b大于100,则输出a,b的和与100的差,否则输出两数之和。
4、从键盘输入三角形的三边长,判断出这三边能否构成三角形
5、随便输入一个数,判断该数为奇数还是偶数;
6、写程序输出一个圆的面积;
7、根据输入的月份,判断该月份有多少天
8、输入员工登记A、B、C级,判断其是否加薪,加薪对应500、300、100(switch语句)
9、随意输入一个数字1-7,判断是周几,输入其他数字提示输入错误。(switch语句写)
10、输入三个int型的数据,放入到a,b,c三个变量中去,使用条件结构与交换逻辑将这三个变量中的值从小到大排列。
11、输入一个年份,判是闰年还是平年

循环体
1.
   *   第一行  3个空格  1个*
  ***  第二行  2个空格  3个*
 ***** 第三行  1个空格 5个*
******* 第四行 0个空格 7个*

2.
*******
*****
***
*
3.
     *
    **
   ***
  ****
 *****

 建议初学者都敲一敲,而且是不看我的答案,先自己敲,很多东西看着会,实际自己上手敲的时候往往会出错。另外题解肯定不止一个,我也只是记录其中一种,大家大可寻找更优解,同时我基本没写注释,希望大家还是多自己思考原因。

2.部分习题参考答案

        //1、定义一个int类型的变量为x并赋值为5,如果x<10,则让x实现自增,并输出x最后的值。
        int x=5;
        while (x<10){
            x++;
        }
        System.out.println(x);


        //2、随意输入一个数字a,若a>20,输出a的值。
        Scanner sc=new Scanner(System.in);
        int a=sc.nextInt();
        if(a>20){
            System.out.println(a);
        }


        //3、编程输入整数a和b,若a或b大于100,则输出a,b的和与100的差,否则输出两数之和。
        Scanner sc=new Scanner(System.in);
        int a=sc.nextInt();
        int b=sc.nextInt();
        if(a>100||b>100){
            int c= a+b-100;
            System.out.println(c);
        }else {
            System.out.println(a+b);
        }


        //4、从键盘输入三角形的三边长,判断出这三边能否构成三角形
        Scanner sc=new Scanner(System.in);
        int a=sc.nextInt();
        int b=sc.nextInt();
        int c=sc.nextInt();
        if(a+b>c&&a+c>b&&b+c>a){ //三角形任意两边之和大于第三边
            System.out.println("能构成三角形");
        }else {
            System.out.println("不能构成三角形");
        }


        //5、随便输入一个数,判断该数为奇数还是偶数;
        Scanner sc=new Scanner(System.in);
        int a=sc.nextInt();
        if(a%2==0){
            System.out.println("偶数");
        }else {
            System.out.println("奇数");
        }


        //6、写程序输出一个圆的面积;
        Scanner sc=new Scanner(System.in);
        System.out.print("请输入圆的半径:");
        int r=sc.nextInt();//
        System.out.println("圆的面积是:"+3.14*r*r);



       //7、根据输入的月份,判断该月份有多少天,二月统一为28天
        Scanner sc=new Scanner(System.in);
        int month=sc.nextInt();        
        if(month==1||month==3||month==5||month==7||month==8||month==10||month==12){
            System.out.println("31");
        }else if (month==4||month==6||month==9||month==11){
            System.out.println("30");
        }else if (month==2){
            System.out.println("28");
        }else {
            System.out.println("不存在该月份");
        }


        //8、输入员工登记A、B、C级,判断其是否加薪,加薪对应500、300、100(switch语句)
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入员工等级:");
        char m=sc.next().charAt(0);
        switch (m){
            case 'A':
                System.out.println("加薪500");
                break;
            case 'B':
                System.out.println("加薪300");
                break;
            case 'C':
                System.out.println("加薪100");
                break;
            default:
                System.out.println("不加薪");
        }


       //9、随意输入一个数字1-7,判断是周几,输入其他数字提示输入错误。(switch语句写)
        Scanner sc=new Scanner(System.in);
        int day=sc.nextInt();
        switch (day){
            case 1:
                System.out.println("周一");
                break;
            case 2:
                System.out.println("周二");
                break;
            case 3:
                System.out.println("周三");
                break;
            case 4:
                System.out.println("周四");
                break;
            case 5:
                System.out.println("周五");
                break;
            case 6:
                System.out.println("周六");
                break;
            case 7:
                System.out.println("周天");
                break;
            default:
                System.out.println("输入错误!");
        }


        //10、输入三个int型的数据,放入到a,b,c三个变量中去,使用条件结构与交换逻辑将这三个变量中 
        //的值从小到大排列。
        Scanner sc=new Scanner(System.in);
        int a=sc.nextInt();
        int b=sc.nextInt();
        int c=sc.nextInt();
        if(a<b&&a<c){
            if(b<c){
                System.out.println(a+"<"+b+"<"+c);
            }else {
                System.out.println(a+"<"+c+"<"+b);
            }
        }else if (a<b&&a>c){
            System.out.println(c+"<"+a+"<"+b);
        }else if(a<c&&a>b){
            System.out.println(b+"<"+a+"<"+c);
        }else if(a>b&&a>c){
            if(b<c){
                System.out.println(b+"<"+c+"<"+a);
            }else {
                System.out.println(c+"<"+b+"<"+a);
            }
        }


        //11、输入一个年份,判是闰年还是平年
        //闰年是能被4整除并且不能被100整除的数,或者能被400整除的数
        Scanner sc=new Scanner(System.in);
        int year =sc.nextInt();
        if((year%4==0 && year%100!=0) || year%400==0 ){
            System.out.println(year+"是闰年");
        }else {
            System.out.println(year+"不是闰年");
        }


         //1.
         //   *   第一行  3个空格  1个*
         //  ***  第二行  2个空格  3个*
         // ***** 第三行  1个空格 5个*
         //******* 第四行 0个空格 7个*
        //找规律,i控制的行数,j控制的列数
        //空格和*分别用for循环控制,不要想着一个for循环搞定
        for (int i = 1; i < 5; i++) {
            for (int k = 0; k < 4-i; k++) {
                System.out.print(" ");
            }
            for (int j = 0; j <(i*2-1); j++) {
                System.out.print("*");
            }
            System.out.println();
        }


        //2.
        //*******
        //*****
        //***
        //*
        for (int i = 4; i >0 ; i--) {
            for (int j = 0; j < 2*i-1; j++) {
                System.out.print("*");
            }
            System.out.println();
        }


        //3.
        //     *
        //    **
        //   ***
        //  ****
        // *****

            for (int i = 1; i <6; i++) {
                for (int k = 0; k < 6-i; k++) {
                    System.out.print(" ");
                }
            for (int j = 0; j < i; j++) {
                System.out.print("*");
            }
            System.out.println();
        }

 以上,就是今天的所有知识点了。才刚刚开始,路还很长。

加油吧,预祝大家变得更强!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值