Java基础代码语法讲解上

因为最近有多余的时间,可以码字,Java基础虽然真的很基础,但是我学起来又慢又吃力,我想不能忘记自己学语言学不会的样子。
这篇文章我决定写的很零碎,而且想尽量写的很通俗易懂,来锻炼自己说人话的能力。
一起加油。

一:如何对用户的输入进行扫描并进行输出。

代码如下

public class Test {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入字符串:");
        int a = scanner.nextInt();
        int b= scanner.nextInt();
        System.out.println(a);
        System.out.println(b);
    }
}

语法格式

 Scanner s = new Scanner(System.in);

创建一个Scanner的对象s这样s就可以调用Scanner这个类中的很多方法啦。
简单解释一句,类就像一个储存很多方法的宝库,而我们要用这个宝库中的方法,就需要给出一个对象,来对方法进行具体的调用。

int I = scanner.nextInt.

意思用scanner下的nextInt方法来接收数据,并把接收的数据的值给I

注1:nextInt与nextLine的区别
nextInt接受数据时,如果输入为247,则输出为247 如果输入为2 4 7,则输出为2,也可以说无法读取并输出空格,以空格来判断结束位置
但是如果是nextLine,输入2 4 7输出2 4 7,以回车来判断结束位置,可以输出空格。

2:如果想使用nextInt同时接收多个数据,并进行输出
很简单,就像我代码写的那样给出int更多的值进行接收就好啦。我发现Java默认int的第一个值a接收输入的第一个数据,int的第二个值b接收第二个数据,这就是顺序结构的特性吧。

二:程序流程的三种结构

顺序选择(条件)与循环结构
1:顺序结构
我上文中的打印就是顺序结构,顺序执行
2:选择结构
if单选择结构

代码展示

 if(scanner.hasNextInt()) {
            i=scanner.nextInt();//一定要接收数据!!!
            System.out.println("你输入的是整数"+i+"耶");

        }

如果scanner扫描到有下一个输入值则用i接收上一个输入值并进行打印。

if双选择结构

代码展示

 if(scanner.hasNextInt()) {
            i=scanner.nextInt();//一定要接收数据!!!
            System.out.println("你输入的是整数"+i+"耶");

        }else{
            System.out.println("哼!输入的根本不是整数");
        }

if多选择结构

在这里插入图片描述
代码展示

if (score<60){
            System.out.println("不及格哦");
        }else if (score>=60&&score<70){
            System.out.println("成绩为D哦");
        }else if (score>=70&&score<80){
            System.out.println("成绩为C哦");
        }else if (score>=80&&score<90){
            System.out.println("成绩为B哦");
        }else if(score>=90&&score<=100){
            System.out.println("成绩为A哦,真是棒棒呢");
        }else{
            System.out.println("大笨蛋,输入的是无效成绩呢");
        }

嵌套的if循环

在这里插入图片描述
代码如下

  //嵌套if循环
    public static void main(String[] args) {
        int i=10,sum=0;
        if (i>=0){
            i=i-1;
            if(sum<=10){
                sum=sum+1;

            }

        }
        System.out.println(i);
        System.out.println(sum);
    }

注意if是条件语句,执行后即跳出,不会循环,所以最后输出i=9,sum=1;
switch选择结构

在这里插入图片描述
expression中填写需要被判断的表达式,value则是判断表达式满足的值,若满足则执行语句,代码如下:

 System.out.println("请输入你的成绩等级");
        Scanner scanner = new Scanner(System.in);

        char grade = scanner.next().charAt(0);


        switch (grade){
            case 'A':
                System.out.println("超过百分之九十的同学");
                break;
            case 'B':
                System.out.println("超过百分之八十的同学");
                break;
            case 'C':
                System.out.println("超过百分之七十的同学");
                break;
            case 'D':
                System.out.println("超过百分之六十的同学");
                break;
            default:
                System.out.println("你又输错了大笨蛋");

如果没有break,所有语句都会执行。

3:循环结构

while循环
在这里插入图片描述
当布尔表达式为true时循环会一直执行下去
代码:

 while (i<=100){
            sum = sum +i;
            i++;
        }
        System.out.println(sum);

先判断i是否小于或等于一百,小于则开始执行循环没执行一次i都加1,一直到i等于101时跳出循环。

do-while循环
在这里插入图片描述
执行代码语句,然后看是否满足布尔表达式,若满足,则继续执行,若不满足,则跳出。
代码:

  int i=100;
  do {
            i--;

        }while (i>=2);//只要i>2开始循环,当i<2的时候终止循环
        System.out.println(i);

先进行i=i-1,发现99>2,则继续执行循环,一直到i=1,可以跳出循环。
for循环
在这里插入图片描述
代码:

 //2:用for循环输出0到1000内所有能被5整除的数,且每三个输出一行。
        for (int j = 0; j < 1000; j++) {
            if (j%3==0){
                System.out.print(j+"\t");
            }
            if (j%15==0){
                System.out.print("\n");
            }

        }

j=1000的时候跳出循环。

增强for循环

public static void main(String[] args) {
        int[] numbers = {1,2,3,4,5,7};
        for(int i=0;i<6;i++){
            System.out.println(numbers[i]);//看如何输出数组
        }
        System.out.println("==========");
        for(int x:numbers){//此处为for加强循环
            System.out.println(x);
        }
    }

此处的加强循环会直接完成数组的遍历与赋值。

小作业打印九九乘法表

 //打印九九乘法表
        for (int t = 1; t <= 9; t++) {
            for (int k = 1; k <= 9; k++) {
                System.out.print(k+"*"+t+"="+t*k+"\t");

            }
            System.out.print("\n");
        }

4:break与continue以及标签

注:continue跳出部分语句,break跳出整个语句。
先看continue,还是上代码:

 int i=0;
       while (i<100){
           i++;
           if (i%10==0){
               System.out.println();
               continue;//跳出重新执行while,从而无法输出SOP
           }
           System.out.print(i+" ");
       }

若i的值为10,则回车,然后遇见continue,continue使i跳出if语句,继续执行while中的内容,所以最后代码输出如下:
在这里插入图片描述
如果是break

 int j=0;
       while(j<100){
           j++;
           if (j==30){
               break;
           }
           System.out.print(j+" ");
       }

当j=30时,break不仅跳出if,还跳出了while循环,所以循环没有继续执行,只打印到29.
输出结果如下:
在这里插入图片描述
标签
outer:即为我们给程序下的标签,如果没有标签,break与continue都会跳到自己想跳的循环,但是如果有标签,则会跳到制定循环。

 outer:for (int k=100;k<=150;k++){
           for(int q =2;q<=k/2;q++){
               if(k%q==0){
                   continue outer;//continue只能跳出一个语句,加上标签后可以跳出指定语句
               }
           }
           System.out.print(k+" ");
       }

此代码为打印100到150的所有质数,质数:大于2,且除了一和本身没有其他因数的数。判断一个数是否为质数,则让它除以小于自己的数,若有余数,则为质数,进行打印,若没有余数,则不为质数,跳到for进行加一继续判断。
最后输出:
在这里插入图片描述

小练习:打印三角形
我们想打印这样的三角形:在这里插入图片描述
需要打印三个部分:
在这里插入图片描述
上代码!

  public static void main(String[] args) {
        for (int i = 0; i <= 5; i++) {

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

            }
            System.out.println();
        }
    }

为了看起来更清晰,我再改了一下代码,输出结果长这样:
在这里插入图片描述
i=0,代码一执行五次,代码二不执行,代码三不执行;
i=1,代码一执行四次,代码二执行一次,代码三不执行;
i=2,代码一执行三次,代码二执行两次,代码三执行一次;

本来想写Debug,但是Java的一些调试操作与查源码我自己也没太搞清楚,决定单独做个专题。

Java代码很基础的一部分已经写完了,在这里感谢狂神,很多东西看代码一点就透,网上很多课程也很好,只是讲的东西太全面,对我来说实在太吃力了,再加上时间的限制,就连狂神说Java完全学也完花了我三个星期。
java下就开始方法的讲解啦,我会写的比这一篇还要详细,学习是一件很值得开心的事情!!!!!

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值