一、流程控制

1、定义

​ 在一个Java程序中,各条语句的执行对程序的结果有直接影响,也就是说 各个语句的执行顺序对程序的结果有直接影响。

​ 在程序中 ,可能出现不同的执行顺序,必须 自上而下顺序执行,或者 条件判断的顺序或者循环执行的顺序。

2、分类

​ 顺序执行

​ 条件分支

​ 循环执行

3、顺序执行

 //顺序执行, 从上而下执行
public static void main(String [] args){
System.out.println(1);
System.out.println(2);
System.out.println(3);
}

4、条件分支

1、if条件分支

​ 语法:

if(条件){
语句块
}
其他代码

解释: 如果条件成立 ,则执行语句块 ,如果条件不成立,则不执行语句块

   // 生成一个100以内的随机数   判断它是否为偶数
int n = (int)( Math.random()*100);
if(n%2 == 0){
System.out.println("这是数是偶数");
}
System.out.println("程序结束");

2、if...else条件分支

语法:

  if(条件){
语句块1
}else{
语句块2
}

解释: 如果条件成立, 则执行语句块1 ,如果条件不能力 ,则执行语句块2

  int n = (int)(Math.random()*100);
// n<50 需要买西瓜 >50 需要买葡萄
if(n<50){
System.out.println("买了一个大西瓜");
}else{
System.out.println("买了一串葡萄");
}
System.out.println("n->"+n);
System.out.println(" 嗯,程序猿的女朋友很高兴,至少买了水果");

3、if...else if ... else 多条件分支

语法:

 if(条件1){
语句块1
}else if(条件2){
语句块2
}else if(条件3){
语句块3
}
...
else{
语句块4
}

解释: 从条件1开始依次判断,如果条件1 成立,则执行语句块1 ,其他条件不再执行,如果条件2成立,则执行语句块2,其他条件不再执行。。。 依次类推如果条件都不成立,则执行else语句块。 ,最终只执行其中某一个语句块,

   // 随机生成90以内的年龄  整数
int n = (int)(Math.random()*90);
if(n<18){
System.out.println("未成年");
}else if( n<30){
System.out.println("青年");
}else if( n<50){
System.out.println("中年");
}else if( n<70){
System.out.println("老年");
}else{
System.out.println("晚年");
}
System.out.println("n->"+n);

嵌套条件判断

语法: 以上3种格式 ,可以同时使用,在一个if语句再次嵌套if 语句

        // 接收控制台输入 ,  判断 输入的数 是否能被3整除
// 如果能被3整除,输出这个数除以3的结果,并判断结果能被7整除
// 如果不能被3整除,判断是否为偶数 Scanner sc = new Scanner(System.in);
// 接收控制台输入的整数
int n = sc.nextInt();
if(n%3 == 0 ){
System.out.println("这个数能被3整除");
// 在if语句中继续判断, 就是嵌套条件判断 ,需要往后缩进
int result= n/3;
if(result%7 == 0){
System.out.println("这个结果能被7整除");
}else{
System.out.println("这个结果不能被7整除");
}
}else{
System.out.println("这个数不能被3整除");
if(n%2 ==0){
System.out.println("这个数能2整除");
}else{
System.out.println("这个数不能被2整除");
}
}

注意 : 嵌套条件时 为了增强代码的可读性,将条件语句块的分支 往后缩进 ,{}作为一个整体

​ 条件语句块中如果只有一个输出语句, 可以省略{}

5、选择条件判断

语法:

switch(表达式){
case 常量值1:
语句块1;
break; // 语句块接收的标记
case 常量值2:
语句块2;
break;
...
default:
语句块3;
break;
}

注意: switch 的表达式判断 只能等值比较 ,其中case的常量值 类型位: 整数型(byte short int long ),字符型,字符串型,枚举型

  byte n = (byte)(Math.random()*7+1);
switch (n){
case 1 :
System.out.println("星期一");
break;
case 2:
System.out.println("星期二");
break;
case 3:
System.out.println("星期三");
break;
case 4:
System.out.println("星期四");
break;
case 5:
System.out.println("星期五");
break;
case 6 :
System.out.println("星期六");
break;
default :
System.out.println("星期天");
break;
}

case穿透问题

在switch中,如果case后面不写break,将会出现穿透现象,也就是说不会执行下一个case的判断条件直接往后运行,直到遇到break,或整体switch结束

练习

* 1、使用switch制作一个简单的计算器:
* 让用户输入计算数字1和运算符 及计算数字2,然后程序帮他计算出结果。
*

二、循环

1、循环定义

  在Java程序中,重复的执行某一段代码 这个过程称之为循环, 为了避免出现死循环,循环分为四部分

​ 1、初始条件

​ 2、循环的判断条件 ,条件为true ,则进入循环体

​ 3、循环体

​ 4、迭代变量

while循环

语法:

  初始条件
while(判断条件){
循环体
迭代部分 (为了改变循环的判断条件)
}

​ 计算1到100的累计之和 1+2+3+4...+100=?

初始值 n=  1
条件: 100以内的 数可以一直累加(一直循环)
迭代: n++
 //计算 1到100的累加之和
int sum=0;
int n=1;
while(n<=100){
sum+=n;
n++;
}
System.out.println("n:"+n);
System.out.println("sum:"+sum);

do...while循环

语法:

 初始值1
do{
循环体2
迭代部分3
}while(返回boolean类型的表达式4);

执行顺序: 123-》423 -》423-》423 .。。4 直到条件4为false 则退出循环。

​ 先执行初始值 1,循环体2 ,迭代3

​ 再判断条件4是否成立,成立,继续执行2,3

再判断条件4是否成立,成立,继续执行2,3

...

​ 判断条件4是否成立,不成立,退出

        int i=0;
do{
System.out.println("i--"+i);
i++;
}while(i<10); System.out.println("i===="+i);
/**
* 第一遍: 输出 0 i=1
* 第二遍: 判断 1<10 成立 输出1 i=2
* 第三遍: 判断 2<10 成立 输出2 i=3
* .。。
* 第九遍: 判断8<10 成立 输出8 i=9
* 第十遍:判断 9<10 成立 输出9 i=10
* 第十一遍: 判断 10<10 不成立。退出
*
*
*/

问题: while循环与do while循环的区别?

1、while循环先判断条件是否成立,再执行循环体,do while循环 先执行一遍循环体再判断条件。

break : 退出循环

for循环

​ for循环的升级版就是 foreach循环

​ for循环通常在明确循环次数的情况下使用, 它也分为四部分

语法:

 for(初始值1 ; 循环判断条件2 ; 迭代部分3 ){
循环体4
}
或者 初始值
for( ; 循环判断条件 ; ){ 循环体 迭代部分
}
// 他们的区别是 初始值定义在for的外边,就可以在循环外边使用

循环执行流程:

​ 1243-》243-》243-》243-》。。。》2 为false 循环退出

例如 :循环输出5遍hello world

  // i 表示计数器,从1开始 到5结束
for(int i=1 ;i<=5 ; i++){
System.out.println("hello world");
}

循环的执行顺序:

第一遍: i=1 1<5 成立 输出“hello world ” i++ i=2

第二遍 :2<=5 成立 输出“hello world” i=3

第三遍 : 3<=5 成立 输出”hello world“ i=4

第四遍: 4<=5成立 输出”hello world“ i=5

第五遍: 5<=5 成立 输出”hello world“ i=6

第六遍: 6<=5 不成立,退出

i=6

使用for循环计算1-的阶乘

 // 使用for循环 计算 10的阶乘
for(int i=1;i<=10;i++){
sum*=i;
}

for循环部分可以省略

        // 死循环
for(;;){
System.out.println("hello");
}
        for(;true;){
System.out.println("hello world");
}
  // 迭代部分的代码 可以 放入循环体中
int i=0;
for( ; i<10; ){
System.out.println("第"+i+"次输出");
i++;
}

Java流程控制和循环(基础语法学习)的更多相关文章

  1. 051 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 13 Eclipse下程序调试——debug入门1

    051 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 13 Eclipse下程序调试--debug入门1 本文知识点: 程序调试--debug入门1 程序 ...

  2. 048 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 10 案例——阶乘的累加和

    048 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 10 案例--阶乘的累加和 本文知识点:通过案例练习嵌套循环应用 案例练习--阶乘的累加和 案例题目 ...

  3. 046 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 08 for循环的注意事项

    046 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 08 for循环的注意事项 本文知识点:for循环的注意事项 for循环的注意事项 for循环有3个 ...

  4. 045 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 07 for循环应用及局部变量作用范围

    045 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 07 for循环应用及局部变量作用范围 本文知识点:for循环应用及局部变量作用范围 for循环 w ...

  5. 040 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 02 while循环的执行流程

    040 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 02 while循环的执行流程 本文知识点:while循环的执行流程 三种循环结构中的第一种--wh ...

  6. 053 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 15 流程控制知识总结

    053 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 15 流程控制知识总结 本文知识点: 流程控制知识总结 流程控制知识总结 选择结构语句 循环结构语句 ...

  7. 052 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 14 Eclipse下程序调试——debug2 多断点调试程序

    052 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 14 Eclipse下程序调试--debug2 多断点调试程序 本文知识点: Eclipse下程序调 ...

  8. 050 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 12 continue语句

    050 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 12 continue语句 本文知识点:continue语句 continue语句 continue ...

  9. 049 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 11 break语句

    049 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 11 break语句 本文知识点:break语句 break语句 break语句前情回顾 1.swi ...

  10. 047 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 09 嵌套while循环应用

    047 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 09 嵌套while循环应用 本文知识点:嵌套while循环应用 什么是循环嵌套? 什么是循环嵌套? ...

随机推荐

  1. 【JS基础】ES6模块系统

    export export 导出方式有两种,命名导出和默认导出. 命名导出还是默认导出都是都导出模块中内容的一种方式,可以混合使用. 个人理解:默认导出其实是导出了default别名变量. 一个模块只 ...

  2. Mac连接Win的方法

    前言 我们都知道,Mac和Win还是非常不一样的,作为Macdows双修选手,我今天给大家介绍一些从Mac连接Win的方法. Win的RDP 由于Win默认未安装ssh,我们最常使用的连接方式则是使用 ...

  3. ExcelDataReader插件的使用

    NPOI插件的弊端 刚来公司的时候公司软件导入导出操作都使用微软的office组件来实现,大家应该都知道这个组件有很大的弊端,就是运行主机上面必须安装office组件才可进行使用,不然无法进行导入导出 ...

  4. Java 遍历方式

    一.遍历方式 迭代器 增强for循环 普通for循环 二.使用 迭代器: public class IteratorMethod { public static void main(String[] ...

  5. 第三章3.1HTML技术与CSS技术

    web中的html以及css: html(超文本标记语言:Hyper Text Markup Language):用于描述网页的一种语言: 通常其根标签使用html标签:使用尖括号表示:<htm ...

  6. PyCharm解决Git冲突

    技术背景 在前面的一篇博客中,我们介绍了Fork到自己名下的本地仓库如何与远程原始仓库创建链接的方法.在这篇文章中,我们将要讲解如何应对在这种异步开发的过程中经常有可能会遇到的Git冲突问题,在Pyc ...

  7. 一道名题-(csp 儒略日)的心得与技巧

    引: 如果你见到一个oi对着 4713,1582 146097 2299160 颠颠地笑,不用怀疑,他是在做那道名题--<csp-s2020 T1 儒略日> 这道题,我做了三年,平均每年做 ...

  8. 3520. 【NOIP2013模拟11.7B组】原根(math)

    题目: 考试想法: 考试的时候觉得这些数学公式太恶心了,所以就直接跳过了. 正解: 直接暴力模拟就可以了. 代码: #include<bits/stdc++.h> using namesp ...

  9. Redis之消息队列实现

    文章目录 秒杀场景 采用消息队列实现 List实现消息队列 PubSub(发布订阅)实现消息队列 基于Stream实现消息队列 消费者组 实践 总结 秒杀问题是非常重要且比较难实现的,如果不进行架构的 ...

  10. html知识点简记

    1.figure元素 是一种元素的组合,可带有标题(可选).figure元素用来表示网页上一块独立的内容,将其从网页上移除后不会对网页上的其他内容产生影响.figure元素所表示的内容可以是图片.统计 ...