大数据

阅读: 评论:0

大数据

大数据

额外知识点

equals()方法
必须由一个字符串去调用equals()方法
原理:调用方法的字符串和参数的字符串进行逐个字符的比较,若都一样则返回True;反之则返回False。由大小写之分。

三元运算符

三元运算符是一种简单的条件运算符,它根据条件执行两个表达式中的一个。它的语法如下:

(condition)? expression1 : expression2

其中,condition是一个布尔表达式,如果为true,则执行expression1,否则执行expression2。

例子如下:

int age = 18;
String message = (age >= 18)? "成年人" : "未成年人";
package at.day14.set;public class Test {public static void main(String[] args) {int age = 10;String message = age >= 18? "成年人":"小孩儿";System.out.println(message);}
}

表达式和语句

赋值表达式

数据类型+变量名 = 变量值;
如: int i = 5;

输出语句

方式一:输出后自动换行System.out.println()
方式二:输出后不会在东换行System.out.print()

顺序结构

程序从上到下一步一步按顺序执行

键盘输入变量值

Scanner输入语句

键盘输入变量值步骤:

Step1:申请资源,创建Scanner类型对象;
import java.util.Scanner—该代码最好写在公共类之前,否则每次在输入之前都要写该代码。
Step2:提示输入xxx;
Scanner input = new Scanner(System.in);
System.out.println("请输入:");
Step3:接受输入的内容;
int a = Int();此处以整型为例
Step4:全部输入完成后,释放资源并归还资源。
input.close()函数进行释放资源。

其他数据类型的输入

next方法

长整型输入long binNum = Long();
双精度输入double d = Double();
布尔型输入boolean b = Boolean();
字符串输入String s = ();
字符输入char c = ().charAt(num);------charAt(num)代表先按照字符串进行接收,然后将下标为num的字符赋给字符变量c(注意:下标从0开始)

next()和nextLine()的区别

next()方法:遇到空格等空白符就认为输入结束。
nextLine()方法:遇到回车换行才会认为输入结束。

注意:当不与其他next方法一起用时可以使用nextLine()方法;反之则使用next()方法。

分支语句

if…else

单分支语句判断:if

若条件表达式为True则执行语句体;反之则不执行,跳过if条件语句继续执行后续代码。

if(条件表达式){语句体;
}

双分支条件判断:if…else

若条件表达式为True则执行语句体1;反之则执行语句体2。

if(条件表达式){语句体1;
}else{语句体2;
}

多分支语句条件判断:if…else if…else

若满足条件表达式就执行语句体1;反之判断条件2是否为True,若为True则执行语句体2;反之判断条件3是否为True,若为True则执行语句体3;反之执行语句体4。

if(条件表达式){语句体1;
}else if(判断条件2){语句体2;
}else if(判断条件2){语句体3;
}else{语句体4;
}

嵌套if语句条件判断

if(条件表达式1){if(条件表达式2){语句体1;}else{语句体2;}
}else{语句体3;
}

switch…case多分枝选择结构—只能用于等值判断

未加break------会造成case穿透

从满足条件的那行case开始,顺序执行后续代码.。详见例子。

  • 利用case穿透

例题:判断月份对应的季节。

方式一:

import java.util.Scanner;
public class Month {public static void main(String[] args) {Scanner input = new Scanner(System.in);System.out.println("请输入一个月份:");int choice = Int();switch(choice){case 1:case 2:case 12:System.out.println("冬季");break;case 3:case 4:case 5:System.out.println("春季");break;case 6:case 7:case 8:System.out.println("夏季");break;case 9:case 10:case 11:System.out.println("秋季");break;default:System.out.println("输入的月份有误");break;}}
}

运行结果显示为:

方式二:(jdk12之后才出现):每个case后面默认有break

import java.util.Scanner;
public class Month1 {
//注意:用EditPlus要保存为UTF-8形式public static void main(String[] args) {Scanner input = new Scanner(System.in);System.out.println("请输入一个月份:");int choice = Int();switch(choice){case 1,2,12 -> System.out.println("冬季");case 3,4,5 -> System.out.println("春季");case 6,7,8 -> System.out.println("夏季");case 9,10,11 -> System.out.println("秋季");}}}

运行结果显示为:

加break------避免case穿透

详见例题中的解释。

case顺序和default顺序可以乱序------当所有的case都不匹配时才会执行default语句

  • 无break版本
  • 有break版本

注意:写无序版本纯属脑子有泡,此处只是做个简单说明。

if语句和switch语句比较

if语句的条件是一个布尔型值,适用范围更广。但其不具有穿透性。

switch语句的条件是一个常量值(常量值只能为byte,short,int,char,枚举(jdk1.5),String(jdk1.7)这几种基础数据类型),适用范围小。具有穿透性。

循环语句

while循环

while(循环条件)中的循环条件必须是boolean类型
循环条件语句1必须为True才能进入循环;反之跳过循环体。

  • 语句基本格式
while (循环条件语句1){循环体语句1;
}

do…while循环------先执行再判断

do{}while{};最后有一个分号
do…while结构的循环体语句至少会执行一次,这个与for和while是不一样的

do{循环体语句1;
}while(循环条件语句2);

执行流程

  • 执行循环体语句1
  • 执行循环条件语句2,若条件语句为True,则执行第三步;反之则循环终止,循环不再执行。
  • 循环条件语句执行完后,重新从第一步开始再执行一遍。

应用场景

当循环条件依赖循环操作时就可以使用do…while循环
判断变量声明周期方法如图所示。

for 循环

for(;;)中的两个;是不能多也不能少
循环条件语句2必须是boolean类型

for (初始化语句1;循环条件语句2;迭代语句4){循环体语句3;
}

执行流程

  • 执行初始化语句1,完整循环变量的初始化
  • 执行循环条件语句2,若为True则执行循环体语句3;反之循环不再执行跳出循环(此处假设为True)
  • 执行迭代语句4,针对循环变量重新赋值
  • 根据循环变量的新值,重新从第二步开始再执行一遍

使用场景

用于循环次数确定,先判断后执行的情况。

方式一

方式二

for(;;)循环的三个表达式均可以省略,但是两个分号不能省略。

注意:循环条件语句省略时,for 循环会陷入死循环,但是不会报for()循环的错误,只会报错死循环之后的代码,因为死循环后的代码无法运行了。如下:

错误写法:

正确写法:------循环条件语句2不能省略

增强for循环

  • 定义
    增强for循环,也称为for-each循环,是Java中的一种循环结构,用于遍历数组、集合或其他可迭代对象中的元素。它提供了一种简洁和方便的方式来遍历集合中的元素,使代码更加简洁易读。
  • 语法格式
for (元素类型 变量名 : 集合或数组) {// 执行循环体操作
}
  • 解释说明
    (1)在循环的开始时,冒号左侧声明一个变量(冒号左侧变量必须与集合或数组中元素的类型相匹配)或一个对象,用于存储迭代的元素;冒号右侧为你想要遍历的数组或集合。
    (2)执行循环体操作,使用变量访问当前迭代的元素,当集合或数组中的所有元素都被遍历完毕后,循环终止。
    代码示例如下:

循环嵌套

定义:一个循环的循环体是另一个循环。

for (初始化语句1;循环条件语句2;迭代语句7){for (初始化语句3;循环条件语句4;迭代语句6){循环体语句5;}
}

执行特点

  • 外循环执行一次,内循环执行一轮。
  • 三种循环可以互相嵌套

三种循环语句的区别

区别

  • do…while循环至少执行一次循环体语句。
  • for和while循环先循环条件语句是否成立,然后再决定是否执行循环体,至少执行0次循环体语句。
  • 如何选择
  • 遍历有明显的循环次数(范围)要求,用for循环
  • 遍历没有明显的循环次数(范围)要求,用while循环
  • 若循环体语句至少执行一次,可考虑使用do…while循环
  • 本质上三种循环之间可以相互转换,都能实现循环的功能

三种循环结构的共有四要素

  • 循环变量的初始化表达式
  • 循环条件
  • 循环变量的修改的迭代表达式
  • 循环体语句块

break和continue关键字

break------作用于离他最近的那个循环体

  • 作用:
    (1)终止switch
    (2)终止循环并跳出循环语句(即结束循环)执行循环体的后续语句。
  • 离开使用场景的存在是没有意义的。

例题:从1加到20,当加到几时和超过40


错误写法1:此时循环体只循环一次就跳出了循环

错误写法2,若循环体内的break后还有代码则会报错,原因:break已经跳出了循环,循环体内break的后续代码无法执行,所以会报错。循环体内的break后不能有代码。

continue

作用:
跳过本次循环,开始下次循环。

作业

1.水仙花数

public class ShuiXianHua {
//注意:用EditPlus要保存为UTF-8形式public static void main(String[] args) {for (int i = 100;i <= 999 ; i++){int ge = i % 10;int shi = (i/10)%10;int bai = i/100;if( i == ge*ge*ge + shi*shi*shi + bai*bai*bai){System.out.println(i)}}}}

2.输入五个成绩,判断大于80分的人数。

//输入五个成绩,查看大于80分的个数。
import java.util.Scanner;
public class ScoreMaxNum {
//注意:用EditPlus要保存为UTF-8形式public static void main(String[] args) {Scanner input = new Scanner(System.in);int index = 0;for (int i = 0;i<5 ;i++ ){System.out.println("请输入一个成绩:");int score = Int();if(score < 80){continue;}index++;}System.out.println(index);}
}

3.打印右直角三角形

//打印5行右直角三角形
public class RightTriangle2 {
//注意:用EditPlus要保存为UTF-8形式public static void main(String[] args) {for (int i = 1; i <= 5;i++ ){for(int j = 0; j < (5-i); j++){System.out.print(" ");}for(int m= 0; m < i; m++){System.out.print("*");}System.out.println();//换行}}
}

3.打印倒三角形

//打印5行倒三角形
public class RightTriangle1 {
//注意:用EditPlus要保存为UTF-8形式public static void main(String[] args) {for (int i = 5; i > 0;i-- ){for(int j = 5; j > 0; j--){System.out.print("*");}System.out.println();//换行}}}

4.打印左直角三角形

//打印5行三角形
public class RightTriangle {
//注意:用EditPlus要保存为UTF-8形式public static void main(String[] args) {for (int i = 1; i <= 5;i++ ){for(int j = 0; j < i; j++){System.out.print("*");}System.out.println();//换行}}}

5.打印空等腰三角形

//打印空等腰三角形
public class EmptyIsoscelesTriangle {
//注意:用EditPlus要保存为UTF-8形式public static void main(String[] args) {for (int i = 1;i <= 5;i++){for (int j = 1;j <= 5-i;j++){System.out.print(" ");}for(int m = 1; m <= i*2-1; m++){if(m%2 != 0){System.out.print("*");}else{System.out.print(" ");}}System.out.println();}}
}

6.打印等腰三角形

public class AnIsoscelesTriangle {
//注意:用EditPlus要保存为UTF-8形式public static void main(String[] args) {for (int i = 1;i <= 5;i++){for (int j = 1;j <= 5-i;j++){System.out.print(" ");}for(int m = 1; m <= i*2-1; m++){System.out.print("*");}System.out.println();}}
}

7.密码确认

import java.util.Scanner;public class PassWordVerification{public static void main(String[] args){Scanner input = new Scanner(System.in);//声明word变量并赋空值,若你不赋空值,则在你第一次使用前要对其进行赋值操作才能使用,否则会报错String passWordOne = "";String passWordTwo = "";do{System.out.print("请输入密码:");passWordOne = ();System.out.print("请再次输入密码:");passWordTwo = ();if(!One.equals(Two)){System.out.println("两次密码不一致,请重新输入");}}while(!One.equals(Two));System.out.println("注册成功");}
}

8.斐波那契数列

public class Fibonacci {public static void main(String[] args) {int a = 1;int b = 1;System.out.print(a + " " + b + " ");for (int i = 1; i <= 10 ; i++){int c= a + b;System.out.print(c + " ");a = b;b = c;}}}

9.打印九九乘法表

//打印9*9乘法表
public class MultiplicationTable {
//注意:用EditPlus要保存为UTF-8形式public static void main(String[] args) {for (int i = 1; i <= 9;i++ ){for(int j = 0; j < i; j++){System.out.print(i+ "*" + i + "=" + i*i);System.out.print(" ");}System.out.println();//换行}}
}

本文发布于:2024-01-29 10:50:18,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170649662214751.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数据
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23