首页 技术 正文
技术 2022年11月20日
0 收藏 841 点赞 4,906 浏览 6016 个字

一、循环

1.1 定义

  • 当满足一定条件的时候,重复执行某一段代码的操作
  • while和for和do…while是java中的循环

二、while循环

2.1 定义

int i = 0;初始化值

while(i<10){循环判断

​循环体 循环重复执行的代码

​循环控制语句

}

class Demo01 {
public static void main(String[] args) {
int i = 0;while(i < 10){
System.out.println("Hello World!" + i);i++;
}
System.out.println("OVER!");
}
}

2.2 详解while循环

  • 初始化条件语句

    • 定义一个初始化的变量
    • 只执行一次
  • 循环判断条件语句
    • 执行的次数比循环体多一次
    • 决定循环能不能执行的一个语句
  • 循环体
    • 被重复执行的代码
    • 循环真正的功能体现
  • 循环控制语句
    • 控制循环条件的变化
    • 如果没有这个可能会造成死循环

2.3 while案例01–计算0–num累加的结果

class Demo02 {
public static void main(String[] args) {
// 计算0--num累加的结果
int i = 0;
int sum = 0;while(i <= 100){// 表示累加到100
sum = sum + i;// 控制i自增
i++;
}
System.out.println("sum = " + sum);
}
}

2.4 计算1–100奇数累加

class Demo03 {
public static void main(String[] args) {
// 计算0--100奇数累加的结果
// 循环初始化
int i = 0;
// 记录结果
int sum = 0;
// 开启while循环
while(i <= 100){
// 执行累加
if(i % 2 != 0){
sum += i;
}// 控制循环变化
i++;
}System.out.println("sum = " + sum);System.out.println("============");// 循环初始化
int j = 1;
// 记录结果
sum = 0;
// 开启循环,到100结束
while(j <= 100){
// 执行累加
sum += j;// 控制循环变化
j += 2;}
System.out.println("sum = " + sum);
}
}

2.5 输出水仙花数

class Demo04 {
public static void main(String[] args) {
/*
输出所有的水仙花数字
1、确定初始化值
100
2、开启循环,确定结束条件
999
3、计算得出水仙花数并输出
获取数字的各位字面值
计算字面值的立方和
比较立方和是否等于数字本身*/int i = 100;
while(i <= 999){
// 获取个位十位百位数字123
int ge = i % 10;
int shi = i / 10 % 10;
int bai = i / 100;// 计算立方和
int sum = ge*ge*ge + shi*shi*shi +bai*bai*bai;// 比较、判断
if(sum == i){
System.out.println("水仙花数:" + i);
}// 控制循环判断变化
i++;
}
}
}

2.6 输出英文字母

class Demo05 {
public static void main(String[] args) {
/*
7、输出小写的 a-z 以及大写的Z—A
97--12265--908、求出1-1/2+1/3-1/4…..1/100的和9、输出20-80之间能被3整除的整数,每5个一行10、打印出1000-2000年中所有的闰年,并以每行四个数的形式输出
*/int i = 97;
while(i <= 122){
System.out.println((char)i);i++;
}System.out.println("Hello World!");int j = 90;
while(j >= 65){
System.out.println((char)j);j--;
}
}
}

2.7 输出3的倍数,5个一行

class Demo06 {
public static void main(String[] args) {
// 9、输出20-80之间能被3整除的整数,每5个一行int i = 20;
// 定义计数器
int count = 0;
while(i <= 80){
// 判断i是否能被3整除
if(i % 3 == 0){
System.out.print(i + "\t");// 没找到一个符合条件的计数器就加1
count++;
// 怎么确定一行就是5个了---看计数器是不是5的倍数
if(count % 5 == 0){
System.out.print("\n");
}
}i++;
}
}
}

猴子吃桃

class Demo09 {
public static void main(String[] args) {
/*
猴子摘了很多桃子
每天吃桃子半数,感觉不过瘾有多吃了一个
到第十天的时候发现还剩下一个
问:猴子第一天摘了多少桃子
*/int i = 10;int count = 1;while(i > 0){
count = (count+1)*2;i--;
}System.out.println("猴子第一天摘了"+count+"桃子");
}
}

2.8 while循环的特殊情况

  • 死循环

    • 循环判断条件返回结果一直是true
class Demo07 {
public static void main(String[] args) {
/*
while(true){
System.out.println("Hello World!");
}
*/int i = 0;
while(i >= 0){
System.out.println("Hello World!");
i++;
}
}
}
  • 一次都没有执行

    • 第一次进入循环判断的时候,返回的结果是false
class Demo07 {
public static void main(String[] args) {
/*
while(true){
System.out.println("Hello World!");
}
*/int i = 0;
while(i > 0){
System.out.println("Hello World!");
i++;
}System.out.println("OVER!");
}
}

三、do…while

3.1 定义

  • java中循环的一种
  • 和while极度相似
  • 循环开始后先执行do后面的代码–第一次执行不用经过循环条件判断
  • 第一次执行结束后在判断下一次能否执行

3.2 案例

class Demo08 {
public static void main(String[] args) {
int i = 0;
// 先执行do后面的代码----这部分代码和while循环后面的代码书写方式、意义是相同的
do{
// 循环重复执行的代码
System.out.println("Hello World!");// 条件控制语句
i++;// 条件判断
}while(i > 0);System.out.println("OVER!");
}
}

四、for循环

4.1 定义

  • java中的一种循环
  • 能完成遍历、迭代的操作
  • 功能和while基本一样

4.2 语法

for(初始化语句; 循环条件判断语句; 训话条件控制语句){

​循环体

}

class Demo10 {
public static void main(String[] args) {
// 使用for循环输出10遍HelloWorld
for(int i = 0;i < 10;i++){
System.out.println("Hello World!" + i);
}
System.out.println("OVER!");
}
}

4.3 for循环详解

for(int i = 0;i < 5;i++){
System.out.println("Hello World!" + i);
}
System.out.println("OVER!");执行过程
第一次
初始化变量int i = 0,判断i < 5,判断结果true,执行for循环中的循环体
第二次
执行循环条件控制代码i++,i变成1,判断i < 5,判断结果true,执行for循环中的循环体
第三次
执行循环条件控制代码i++,i变成2,判断i < 5,判断结果true,执行for循环中的循环体
第四次
执行循环条件控制代码i++,i变成3,判断i < 5,判断结果true,执行for循环中的循环体
第五次
执行循环条件控制代码i++,i变成4,判断i < 5,判断结果true,执行for循环中的循环体第六次
执行循环条件控制代码i++,i变成5,判断i < 5,判断结果false,不执行for循环中的循环体,循环结束

4.4 for循环计算累加的结果

class Demo11 {
public static void main(String[] args) {
// 计算0--100累加的结果
int sum = 0;for(int i = 0;i<=100;i++){
sum += i;
}
System.out.println("Hello World!" + sum);// 计算0--100奇数累加的结果
sum = 0;
for(int i = 0;i<=100;i++){
// 找出奇数进行累加
if(i % 2 != 0){
sum += i;
}
}
System.out.println("Hello World!" + sum);sum = 0;
for(int i = 1;i <= 100;i += 2){
// 找出奇数进行累加
sum += i;
}
System.out.println("Hello World!" + sum);
}
}

4.5 输出闰年

class Demo12 {
public static void main(String[] args) {
// 输出1000-2000年之间的闰年,4个一行
int count = 0;
for(int i = 1000;i <= 2000;i++){
// 计算闰年
/*
普通闰年:公历年份是4的倍数的,且不是100的倍数,为普通闰年。(如2004、2020年就是闰年);
世纪闰年:公历年份是整百数的,必须是400的倍数才是世纪闰年(如1900年不是世纪闰年,2000年是世纪闰年);
*/if(((i%4==0) && (i%100!=0)) || (i%400==0)){
System.out.print(i + "\t");
// 计数器加一
count++;
// 判断是不是到了4
if(count % 4 == 0){
System.out.println();
}
}
}
System.out.println("Hello World!");
}
}

4.6 输出水仙花数

class Demo13 {
public static void main(String[] args) {
// for循环输出水仙花数
for(int i = 100;i < 1000;i++){
// 计算水仙花数字
// 获取个位十位百位
int ge = i % 10;
int shi = i / 10 % 10;
int bai = i / 100;int sum = ge*ge*ge + shi*shi*shi + bai*bai*bai;// 判断sum和i是否相等
if(sum == i){
System.out.println(i);
}
}
System.out.println("Hello World!");
}
}

4.7 for循环计算阶乘

import java.util.Scanner;
class Demo14 {
public static void main(String[] args) {
// 键盘录入一个数字,计算它的阶乘/*
1、导入Scanner
2、创建Scanner对象
3、提示输入一个数字
4、获取输入的数字
5、编写循环,从1开始,到num结束
6、在循环中不断计算乘积
7、循环结束后输出结果
*/
Scanner in = new Scanner(System.in);System.out.println("你想计算到几的阶乘?");
int num = in.nextInt();int mul = 1;// 开启循环
for(int i = 1;i <= num;i++){
mul *= i;
}System.out.println("num阶乘的结果是:" + mul);
}
}

4.8 统计学生平均分

import java.util.Scanner;
class Demo15 {
public static void main(String[] args) {
// 输入五个同学的分数,计算平均分/*
1、导入Scanner
2、创建Scanner对象
3、开启循环,执行5次
a、提示输入第一个同学的分数
b、获取第一个同学的分数
c、累加这个分数
4、在循环外计算平均分
5、输出平均分数
*/
Scanner in = new Scanner(System.in);// 记录总分数
int scores = 0;
for(int i = 0;i < 5;i++){
System.out.println("请输入第" + (i+1) + "个同学的分数:");
int score = in.nextInt();
scores += score;
}// 计算平均分
System.out.println("五个同学的平均分数:" + (scores/5.0));
}
}

五、循环中流程控制

5.1 break

  • 终止循环的执行

    class Demo16 {
    public static void main(String[] args) {
    // break的使用
    int i = 0;
    while(i <= 100){
    System.out.println("Hello World!" + i);// 在执行到i==66的时候停止运行
    if(i == 66){
    // 使用break终止循环的执行
    break;
    }
    i++;
    }
    System.out.println("Hello World!");
    }
    }

5.2 continue

  • 跳过本轮循环后面的内容,进入到下一轮循环的执行
class Demo17 {
public static void main(String[] args) {
// continue
int i = 1;
while(i <= 20){
// 输出所有的奇数
if(i % 2 != 0){
System.out.println(i);
}
i++;
}
System.out.println("Hello World!001");i = 1;
while(i <= 20){
System.out.println(i);
i += 2;
}
System.out.println("Hello World!002");i = 0;
while(i <= 20){
// 判断:如果是偶数,下面的内容就跳过
i++;
if(i % 2 == 0){
continue;
}
System.out.println(i);
}
System.out.println("Hello World!003");
}
}

六、常量

  • 字面值常量

    • 比如1 、2 、 3
    • 比如”hello” “world”
    • 比如’a’ ‘b’
  • 自定义常量
    • 在生产过程中需要定义一些不能被改变的数值

      • 主机地址
      • 数据库连接时候用到的用户名和密码
      • 端口号
      • 定义的方式
        • 所有的字母大写,多个字母使用下划线连接

七、关键字

  • java关键字是被java语言赋予了特殊含义的标识符
  • class void public static while if else for switch case default break continue….
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,000
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,512
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,358
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,141
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,771
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,849