Day02

流程控制

Scanner用法

import java.util.Scanner;

public class crazy {
   public static void main(String[] args) {
       Scanner sc = new Scanner(System.in);
       System.out.println("使用next或者nextLine接收:");

       //判断用户有没有输入字符串(hasNext或hasNextLine)
       if(sc.hasNextLine()){
           //使用next或nextLine方式接收
           String str = sc.nextLine();
           System.out.println("输入内容为:"+str);
      }

       //凡是属于IO流的类如果不关闭会一直占用资源,要养成好习惯用完就关掉
       sc.close();
  }
}
  • next():

    1. 一定要读取到有效字符后才可以结束输入。

    2. 对输入有效字符之前遇到的空白,next()方法会自动将其去掉。

    3. 只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。

    4. next()不能得到带有空格的字符串。

  • nextLine():

    1. 以Enter为结束符,也就是nextLine()方法返回的输入回车前的所有字符。

    2. 可以获得空白。

import java.util.Scanner;

public class crazy {
   public static void main(String[] args) {
       //输入多个数字,算出总和与平均数,每次输入一个数字用回车确认,通过输入非数字来结束输入
       Scanner sc = new Scanner(System.in);

       //总和
       double sum = 0;
       //个数
       int i = 0;

       //通过循环判断是否还有输入,并在里面对每一次进行求和和统计
       while (sc.hasNextDouble()) {
           double x = sc.nextDouble();
           i++;
           sum+=x;
           System.out.println("你输入了第"+i+"个数据,当前总和是"+sum);
      }
       System.out.println("总和为"+sum);
       System.out.println("平均数为"+sum/i);

       sc.close();
  }
}

Switch多选择结构

switch语句中的变量类型可以是:

  • byte、short、int或者char

  • 从Jjava SE 7开始

  • switch支持字符串String类型

  • 同时case标签必须为字符串常量或字面量

public class crazy {
   public static void main(String[] args) {
       //字符的本质还是数字 所以可以通过class文件查查反编译代码

       //反编译 java--class(字节码文件)---反编译(IDEA)

       String name ="牙牙乐";
       switch (name){
           case"可可猪":
               System.out.println("我是可可猪");
               break;
           case"牙牙乐":
               System.out.println("我就是牙牙乐");
               break;
           default:
               System.out.println("别乱输入");
      }

  }
}

查看反编译,先找到Project Structure再找路径,把Class文件放到对应src里面就行

九九乘法表

四种形式必须全部掌握,理解其中的意义

public class Crazy {
   public static void main(String[] args) {

       System.out.println("左下角");
       for (int i = 1; i < 10; i++) {
           for (int j = 1; j <= i; j++) {
               System.out.print(j + "*" + i + "=" + (i * j) + "\t");
          }
           System.out.println();
      }
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81

       System.out.println("右下角");
       for(int i = 1;i<10;i++){
           for(int j = 9;j>=1;j--){
               if(j>i){
                   System.out.print("\t\t");
              }else{
                   System.out.print(j+"*"+i+"="+i*j+"\t");
              }
          }
           System.out.println();
      }

      1*1=1
2*2=4 1*2=2
3*3=9 2*3=6 1*3=3
4*4=16 3*4=12 2*4=81*4=4
5*5=254*5=203*5=152*5=101*5=5
6*6=365*6=304*6=243*6=182*6=121*6=6
7*7=496*7=425*7=354*7=283*7=212*7=141*7=7
8*8=647*8=566*8=485*8=404*8=323*8=242*8=161*8=8
9*9=818*9=727*9=636*9=545*9=454*9=363*9=272*9=181*9=9
                                                                   
       System.out.println("左上角");
       for (int i = 9; i > 0; i--) {
           for (int j = 1; j<=i ; j++) {
               System.out.print(j + "*" + i + "=" + (i * j) + "\t");
          }
           System.out.println();
      }
       
1*9=92*9=183*9=274*9=365*9=456*9=547*9=638*9=729*9=81
1*8=82*8=163*8=244*8=325*8=406*8=487*8=568*8=64
1*7=72*7=143*7=214*7=285*7=356*7=427*7=49
1*6=62*6=123*6=184*6=245*6=306*6=36
1*5=52*5=103*5=154*5=205*5=25
1*4=42*4=83*4=124*4=16
1*3=32*3=63*3=9
1*2=22*2=4
1*1=1

       System.out.println("右上角");
       for(int i = 9;i>=1;i--){
           for(int j=9;j>=1;j--){
               if(j<=i){
                   System.out.print(j+"*"+i+"="+i*j+"\t");
              }else{
                   System.out.print("\t\t");
              }
          }
           System.out.println();
      }
  }
}

9*9=818*9=727*9=636*9=545*9=454*9=363*9=272*9=181*9=9
8*8=647*8=566*8=485*8=404*8=323*8=242*8=161*8=8
7*7=496*7=425*7=354*7=283*7=212*7=141*7=7
6*6=365*6=304*6=243*6=182*6=121*6=6
5*5=254*5=203*5=152*5=101*5=5
4*4=163*4=122*4=81*4=4
3*3=92*3=61*3=3
2*2=41*2=2
1*1=1

增强for循环

Java5 引入一种主要用于数组或集合的增强型for循环

语法格式如下:

for(声明语句 :表达式)

{

//代码句子

}

  • 声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配。其作用于限定在循环语句块内,其值与此时数组元素的值相等。

  • 表达式:表达式是要访问的数组名,或者是返回值为数组的方法。

break和continue

简记为:break离职 continue休假

break:强行退出循环,不执行循环中剩余的语句。(switch也可以用)

continue:终止某次循环,跳过循环中尚未执行的语句,接着进行下一次是否执行循环的判定。

java中无goto语句,但有类似的是:标签用法 指的是 label:

打印三角形

public class Crazy{
   //打印三角形 5行
   //思路是:拆分为两个矩形,矩形内各有两个三角形,从对角线相分
   //先打空白左上角三角形,再打右下角三角形,再打右边的小三角
   public static void main(String[] args) {
       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();
      }
  }
}
    *
   ***
  *****
 *******
*********

方法

image-20230704161428719

Java是一种值传递,不是引用传递。

方法的调用

image-20230704155923032

方法的重载

重载是:在一个类中,有相同的函数名称,但形参不同的函数。

方法的重载规则:

  • 方法名称必须相同

  • 参数列表必须不同(个数、类型、参数排列顺序)

  • 方法的返回类型可以相同也可以不同

  • 仅仅返回类型不同不足以成为方法的重载

命令行传参

public class Crazy {
   public static void main(String[] args) {
       //args.length 数组长度
       for (int i = 0; i < args.length; i++) {
           System.out.println("args["+i+"]:"+args[i]);
      }
  }
}

 

posted @ 2023-07-05 11:57  爱可猪的可爱  阅读(75)  评论(0)    收藏  举报