自学之路 java篇- -语法基础(二)-----详解运算符和流程控制

发布于:2023-01-19 ⋅ 阅读:(476) ⋅ 点赞:(0)

 我们继续来学习java语法基础的第二份内容,离进厂又近了一步!

三. 运算符

  运算符在我们的编程中满足了我们的一些运算和表达需求,我们也借此能够十分简练的写出有没的代码,运算符在学习编程中可谓是十分重要的一环!

3.1 算数运算符

运算符 解释
+ 求和
- 求差
* 求积
/ 求商
% 模除取余
++ 自增
-- 自减

  3.1.1 运算符

         加减乘除模除最基本的运算,这里就不再赘述了。

  3.1.2 自增运算符 ++

        自增运算符就相当于自身+1  下面我们结合例子去理解如何应用:

int a = 1;
System.out.print(a++);
System.out.print(++a);

   在代码中,我们先定义了一个整形变量a并给它赋值为1  对应:  int a = 1
   代码  System.out.print(a++);   为我们的输出语句 括号中就是我们要输出的内容。 

   a++则表示在这条语句中先输出a之后a自身加一 ,所以输出的内容则为1 之后a的值自增为2.

   那么说 System.out.print(++a);会输出什么呢? 看到这里的同学可以在评论区中打出答案!

  注意: 以上的代码解释会出现一个优先级的问题,刚学习的同学可能不太懂,这个会在我们讲完运算符的时候会告诉大家在编程中运算符之间的运算优先级。

  3.1.3 自减运算符 --

        自减运算符与自增运算符的运算逻辑基本相同,这里给大家列出代码可以检验一下自己的学习能力:

int a = 1;
int b = a;
System.out.printf(a--);
b = --a;
System.out.printf(a);
System.out.printf(b);

3.2 逻辑运算符(与或非)

运算符 名称 含义
&& 逻辑与运算 两边都为真,结果才为真
|| 逻辑或运算 两边都为假,结果才为假
逻辑非运算 !true = false、!false = true

3.3 赋值运算符

运算符 含义
= 赋值
+= 加等,a+=1 相当于 a=a+1
-= 减等(与加等同理

3.4 三元运算符

3.4.1 三元运算符格式

关系表达式 ? 表达式1 : 表达式2

3.4.2 三元运算符含义

在格式中我们可以看出主要有三部分:关系表达式,表达式1,表达式2。其他部分则是固定格式。

    先看第一部分 关系表达式  ,顾名思义它一定是表达用来关系,而在编程中关系的表达结果一定存在真或假。所以就有了引出下面两个表达式12.

  当关系表达式的结果为true时,运算符执行结果为表达式1。
  当关系表达式的结果为false时,运算符执行结果为表达式2。

3.4.3  三元运算符实例

我们先来看一段代码:

int a = 1 ;
int b = 2 ;
int c = a>b ? a : b; 
System.out.print(c);//输出为b的值

   在代码中,我们想定义了两个整形变量a b,然后定义变量c,而c的值则为三元表达式的结果。

  在 a>b ? a : b  关系表达式中a = 1 ,b = 2 ,则a>b的值为假,该运算符运算的结果就是表达式的值,也就是b的值2,所以最后输出的结果便是2.

  通过一个例子我们应该就能够基本的使用三元运算符了吧,但是在我们的实际编程中的使用会更加的灵活多变。所以我们在往后的不断学习中也会不断的用到,加深我们的理解。

  在学习过程中,我们不仅仅要学习一些用法,其中的编程思想才是最重要的。一切的学习都会提高我们写代码的能力,思维的转变才是本质的转变! 

四. 流程控制

4.1 条件语句

4.1.1 if...else语句

我们用if...else 来进行条件判断

(1)if单分支语法

当我们在下图中的情况时,我们可以使用

格式

if(关系表达式){
代码块;
}
//当单行代码是可以不加{}

int a = 1;
if(a>0)
{
    a=0;
}

如例子上所示,if 的()中便是我们的判断语句,语句为真则执行{ }中的语句,所以可以知道代码最后执行了{ }中的语句赋值a为0.

但在实际情况中我们大部分使用双分支的语句

(2)if...else 双分支语法

格式

if(关系表达式){
代码块1;
}
else{
代码块2;
}

 

int a = 1;
if(a>0)
{
    a=0;
}else{
    a=1;
}

 这个就很容易理解了吧,就如流程图中的一样,实例中来看如果a>o ,直接执行a=0的语句,else中的语句则不再执行。而如果a<=0时则执行else中的代码a=1。

(3)if...else 嵌套

格式


if(关系表达式)
{
   if(关系表达式){
  代码块;
   }else{
   代码块;
   }
}else{
    if(关系表达式){
   代码块;
    }else{
     代码块;
    }
}

代码块中可以存在ifelse片段,也可以存在其他代码。

   我们实际情况中也会出现很多情况的分支,例如分数段的的分类,可能需要多次的判断。

  if....else嵌套的具体含义就是在if和else的代码块中我们可以在进行判断使用if else,这样便达到了多次判断的效果。

int a = 1;
if(a>0)
{
   if(a=1){
   a++;
   }else{
    a = 1;
   }
}else{
    if(a = 0){
    a++;
    }else{
     a = 0;
    }
}

 对于这个实例就不再大家讲解了,有哪里不懂可以在评论区下评论或者私信我,我一定会及时回答大家的问题。也十分欢迎大家能够改正我文章中的不足,我一定积极接受!

4.1.2   switch语句

格式

switch(表达式){
case 值1:
       代码块;
       break;
case 值2:
       代码块;
       break;
case 值2:
       代码块;
       break;
case 值N:
       代码块;
       break;
default:
        代码块;
}

    当多重条件分支是ifelse的使用会导致代码的繁琐,而switch 语句可以有效的处理多重条件并是程序的可读性增加。这里需要注意的是如果case的值不满足时,会进入到defaul语句中处理。

String  s = "a";
switch (s) {
  case "a": 
     System.out.print("s的值为a");
     break;
  case "b": 
     System.out.print("s的值为b");
     break;
  case "c":
     System.out.print("s的值为c");
     break;
  case "d": //d分支
     System.out.print("s的值为d");
     break;
  default:
     System.out.print("s的值不正确");
     break; 
}

    通过实例我们来学习下switch的用法。在实例中我们定义字符序列string类型的变量s,并赋值为a,之后来看switch部分,将s放入括号中,而case后跟的值则是比较是否与s的值相同,相同则进入其代码块,知道break结束。如果未找到,则进入default的代码块。

相信大家应该能够容易的理解switch的用法吧!

4.2 循环语句

我们接下来学习下一个比较重要的知识点:循环。

4.2.1 for循环

代码格式

for (表达式1 ;关系表达式 ; 表达式2 )
{
 代码块;
}

for循环的结构应该很好记住,关键的难点便是for后边的括号中的内容,下面我来为大家一 一讲解

 在括号中,首先要强调的就是分为三部分,每部分之间必须用分号间隔,否则会报错。

第一部分 表达式1,该部分在for循环开始之前执行(只有一次);

第二部分 关系表达式,关键    ,如果表达式结果为真,则执行代码块内容。反之结束;

第三部分 表达式二,每次循环后执行;

我们通过实例加深理解

for(int i = 0; i<=100 ; i++)
{
  System.out.println(i);
}

在实例中,我来为大家讲解下代码实际的执行过程:

1:循环开始之前执行,int i = 0 ,这里定义了整型变量 i 赋值为0.

2:执行关系表达式,i<=100,结果为真,则进入循环

3:循环代码块为一个输出i 的值 

4:循环一次后执行 i++ 

5:循环执行 234,直到 i<=100 表达式结果为假的时候,结束循环

这里我们一定要注意写for循环的时候要设置如何才能跳出循环,避免出现死循环的情况,一般我们都会在表达式2对关系表达式进行控制,或者可以在代码块中进行控制,这里我们一定一定要控制住!!!!不然死循环就尴尬了。

这个过程能够理解的话我们下一个while的循环就很简单了

4.2.2 while循环  do while循环

   4.2.2.1 while循环

  代码格式

while(关系表达式)
{
  代码块;
}

 看过上边for循环讲解的同学大家看到while的格式应该容易理解了

我也不过多的讲解,依然是关系表达式为真的时候执行代码块,为假的时候,结束循环,控制的时候在代码块中进行控制。

int i = 0;
while(i<100)
{
   i++;
}

   4.2.2.2 do while循环

代码格式

do{
    代码块;
}while(关系表达式)

 do...while与while有些许不同的地方,但大体相同,在do...while中代码块会先执行一次,在进行while中关系表达式的判断,为真进行循环,为假的时候结束。

int i = 0;
do
{
   i++;
}while(i<100)

4.2.3 字段 break  Continue 

break和continue字段在我们控制循环的过程中也是十分重要的关键点。

break:在循环代码块中,如果遇到break,则立即结束循环。

continue:在循环中,遇到continue,则会跳过代码块中continue后面的代码,进行下一次循环。

我们来通过实例加深理解:

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

 执行结果:

0
2
3
4
5

实例中,我写了一个普通的for循环,其中通过if条件句来进行控制,第一个if 语句中,当i==1满足条件时进入代码块,执行代码continue则跳过本次循环,所以就不会输出1。而当i==6是,执行了代码break则循环结束,所以就不会再输出6以及6之后的数字了。

我们本次的讲解就到这里差不多了,非常感谢大家的观看

既然都看到这里了,如果对这片文章认可的朋友,不妨就给我一个小小的赞。你的支持是我创作的最大动力,感谢大家的观看。

如果还想看下一期的话,那就点个关注不迷路,感谢大家的观看,我们下期见!


网站公告

今日签到

点亮在社区的每一天
去签到