基本语法-程序流程控制

程序流程控制

流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模块。

其流程控制方式采用结构化程序设计中规定的三种基本流程结构,即:

  • 顺序结构
  • 分支结构
  • 循环结构

顺序结构

Java中定义成员变量时采用合法的前向引用。如:

public class Test{
int num1 = 12;
int num2 = num1 + 2;
}

分支结构

package com.parzulpan.java.ch02;

import java.util.Scanner;

/**
* @author : parzulpan
* @time : 2020-11-16
* @attention : if语句例题1
* 岳小鹏参加Java考试,他和父亲岳不群达成承诺:
* 如果:
* 成绩为100分时,奖励一辆BMW;
* 成绩为(80,99]时,奖励一台iphone xs max;
* 当成绩为[60,80]时,奖励一个 iPad;
* 其它时,什么奖励也没有。
* 请从键盘输入岳小鹏的期末成绩,并加以判断。
*/ public class IfTest1 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请从键盘输入岳小鹏的期末成绩:");
int score = scanner.nextInt(); // 从键盘输入一个整数
if(score == 100) {
System.out.println("奖励一辆BMW");
} else if(score <= 90 && score > 80) {
System.out.println("奖励一台iphone xs max");
} else if(score <= 80 && score >= 60) {
System.out.println("奖励一个 iPad");
} else {
System.out.println("什么奖励也没有");
}
} }
package com.parzulpan.java.ch02;

import java.util.Scanner;

/**
* @author : parzulpan
* @time : 2020-11-16
* @attention : if语句例题2
* 假设你想开发一个玩彩票的游戏,程序随机地产生一个两位数的彩票,提示用户输入
* 一个两位数,然后按照下面的规则判定用户是否能赢。
* 1)如果用户输入的数匹配彩票的实际顺序,奖金10 000美元。
* 2)如果用户输入的所有数字匹配彩票的所有数字,但顺序不一致,奖金 3 000美元。
* 3)如果用户输入的一个数字仅满足顺序情况下匹配彩票的一个数字,奖金1 000美元。
* 4)如果用户输入的一个数字仅满足非顺序情况下匹配彩票的一个数字,奖金500美元。
* 5)如果用户输入的数字没有匹配任何一个数字,则彩票作废。
*/ public class IfTest2 {
public static void main(String[] args) {
int randomNumber = (int)(Math.random() * 90 + 10); // [0.0, 1.0) * 90 -> [0, 90) + 10 -> [10, 100) -> [10, 99]
System.out.print("请输入一个两位数:");
Scanner scanner = new Scanner(System.in);
int inputNumber = scanner.nextInt(); int randomNumberA = randomNumber / 10;
int randomNumberB = randomNumber % 10;
int inputNumberA = inputNumber / 10;
int inputNumberB = inputNumber % 10; if (randomNumber == inputNumber) {
System.out.println("奖金 10 000 美元");
} else if (randomNumberA == inputNumberB && randomNumberB == inputNumberA) {
System.out.println("奖金 3 000 美元");
} else if (randomNumberA == inputNumberA || randomNumberB == inputNumberB) {
System.out.println("奖金 1 000 美元");
} else if (randomNumberA == inputNumberB || randomNumberB == inputNumberA) {
System.out.println("奖金 500 美元");
} else {
System.out.println("没中奖");
} System.out.println("中奖号码是:" + randomNumber); }
}

switch 语句有关规则:

  • switch(表达式) 中表达式的值必须是下述几种类型之一:byte,short,char,int,枚举 (jdk 5.0),String (jdk 7.0)
  • case 子句中的值必须是常量,不能是变量名或不确定的表达式值;
  • 同一个 switch 语句,所有 case 子句中的常量值互不相同;
  • break 语句用来在执行完一个 case 分支后使程序跳出 switch 语句块;如果没有 break,程序会顺序执行到 switch 结尾;
  • default 子句是可任选的。同时,位置也是灵活的。当没有匹配的 case 时,执行 default。
package com.parzulpan.java.ch02;

import java.util.Scanner;

/**
* @author : parzulpan
* @time : 2020-11-16
* @attention : switch语句例题1
* 使用 switch 把小写类型的 char 型转为大写。只转换 a, b, c, d, e,其它的输出 “other”。
*/ public class SwitchTest1 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String word = scanner.next();
char c = word.charAt(0); switch (c) {
case 'a':
System.out.println('A');
break;
case 'b':
System.out.println('B');
break;
case 'c':
System.out.println('C');
break;
case 'd':
System.out.println('D');
break;
case 'e':
System.out.println('E');
break;
default:
System.out.println("other");
} }
}

if 和 switch 的使用场景:

  • 如果判断的具体数值不多,而且符合 byte、short 、char、int、String、枚举等几种类型。虽然两个语句都可以使用,建议使用 swtich 语句。因为效率稍高。
  • 其他情况:对区间判断,对结果为 boolean 类型判断,使用 if,if 的使用范围更广。也就是说,使用 switch-case 的,都可以改写为 if-else。反之不成立。

循环结构

循环结构:在某些条件满足的情况下,反复执行特定代码的功能。

循环语句分类:

  • for 循环
  • while 循环
  • do-while 循环

for 循环语法格式:

for (①初始化部分; ②循环条件部分; ④迭代部分){
③循环体部分;

package com.parzulpan.java.ch02;

/**
* @author : parzulpan
* @time : 2020-11-16
* @attention : for语句例题1
* 输入两个正整数 m 和 n,求其最大公约数和最小公倍数。
* 比如:12 和 20 的最大公约数是 4,最小公倍数是 60。
*/ public class ForTest1 {
public static void main(String[] args) {
int m = 12, n = 20;
int max = Math.max(m, n);
int min = Math.min(m, n); for (int i = min; i >= 1; --i) {
if (m % i == 0 && n % i == 0) {
System.out.println("最大公约数:" + i);
break;
}
} for (int i = max; i <= m * n; ++i) {
if (i % m == 0 && i % n == 0) {
System.out.println("最小公倍数:" + i);
break;
}
}
}
}

while 循环语法格式:

①初始化部分;
while(②循环条件部分){
③循环体部分;
④迭代部分;
}

练习和总结


实现九九乘法表?

package com.parzulpan.java.ch02;

/**
* @author : parzulpan
* @time : 2020-11-16
* @attention :
*/ public class NineTable {
public static void main(String[] args) {
for (int i = 1; i <= 9; ++i) {
for (int j = 1; j <= i; ++j) {
System.out.print(i + " * " + j + " = " + (i * j) + " ");
}
System.out.println();
}
}
}

实现 100000 以内的所有质数?

package com.parzulpan.java.ch02;

/**
* @author : parzulpan
* @time : 2020-11-16
* @attention : 质数:只能被 1 和它本身整除的自然数。
*/ public class GetPrimeNumber {
public static void main(String[] args) {
int primeNumberCnt = 0;
long start = System.currentTimeMillis();
for (int i = 2; i <= 100000; ++i) {
boolean isFlag = true; for (int j = 2; j < Math.sqrt(i); ++j) { // 优化2:只对本身是质数的自然数是有效的
if(i % j == 0) {
isFlag = false;
break; // 优化1:只对本身是非质数的自然数是有效的
}
} if (isFlag) {
++primeNumberCnt;
// System.out.println(i);
}
} System.out.println("primeNumberCnt: " + primeNumberCnt);
long end = System.currentTimeMillis();
System.out.println(end-start); }
}

【Java基础】基本语法-程序流程控制的更多相关文章

  1. Java基本语法--程序流程控制

    流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模块.流程控制方式采用结构化程序设计中规定的三种基本流程结构,即:顺序结构.分支结构.循环结构.本篇博客主要是对 ...

  2. java 基础one ---运算符and流程控制

    首先java这个了解下java的基础 首先java文件都是以.java结尾的  然后 他所有的内容都是有一个入口的就是放在了public static void main(String [] args ...

  3. Java 基础 引用数据类型 和 流程控制

    引用数据类型 与定义基本数据类型变量不同,引用数据类型的变量定义及复制有一个相对固定的步骤和格式: 数据类型 变量名 = new 数据类型(); 如:String st = new String(); ...

  4. Java语言中的程序流程控制

    (1. 流程控制 有三种基本技术可以改变程序的控制流程: A.调用方法 :将导致控制流程离开当前方法,转移到被调用的方法. B.选择  :   a. if / else 语句 b. switch语句 ...

  5. Java 基础(8)——流程控制

    上次的运算符都消化好了吗?每一天都要用到一些哦~ 以前有提到过一嘴,程序执行都是从上到下执行的,emm,学到这里,感觉这句话是对的也是错的了…… 如果都是一行一行执行下去的话,上节课的例子: 今天不上 ...

  6. week_one-python基础 基本语法、流程控制

    金角大王的紫金葫芦,python开发环境介绍链接:http://list.youku.com/albumlist/show/id_28961509.html # Author:larlly pytho ...

  7. 3、Java基础语法(下):程序流程控制

    程序流程控制 从键盘获取不同类型的变量: 使用Scanner类,具体实现步骤: 1.导包:import java.util.Scanner; 2.Scanner的实例化:Scanner scan = ...

  8. Java基础-程序流程控制第一弹(分支结构/选择结构)

    Java基础-程序流程控制第一弹(分支结构/选择结构) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.if语句 1>.if语句的第一种格式 if(条件表达式){ 语句体: ...

  9. Java基础语法(4)-流程控制

    title: Java基础语法(4)-流程控制 blog: CSDN data: Java学习路线及视频 1.程序流程控制 流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定 ...

随机推荐

  1. 步步为营,打造CQUILib UI框架库

    步步为营,打造CQUILib UI框架库 UI框架包括如下几个方面:: 丰富的UI控件 窗口管理 主题 多语言 托盘 视图与业务解耦 登录框效果如下:: 提示框效果如下:: 后续讲解如何步步为营,打造 ...

  2. Shell:子shell概念

    Blog:博客园 个人 目录 shell环境 什么是子shell 子shell的分类 shell环境 每个shell进程有一个自己的运行环境,不同的Shell进程有不同的Shell环境.Shell解析 ...

  3. 5+App 相关记录

    一.页面跳转到app 1.应用的manifest.json文件,plus --> distribute --> google 节点下,增加属性 schemes 2.打包后,在手机里安装. ...

  4. css处理文字不换行、换行截断、溢出省略号

    1.使文字不换行 white-space: nowrap; 值 描述 normal 默认.空白会被浏览器忽略. pre 空白会被浏览器保留.其行为方式类似 HTML 中的 <pre> 标签 ...

  5. SysCtlDelay 实现延时

    SysCtlDelay 实际上由 3 条汇编指令实现,一次可以延时 3 个 clock. 例如,初始化系统时钟: SysCtlClockFreqSet((SYSCTL_XTAL_16MHZ | SYS ...

  6. 面试 11-01.ES6:模块化的使用和编译环境

    11-01.ES6:模块化的使用和编译环境 #前言 #ES6的主要内容 模块化的使用和编译环境 Class与JS构造函数的区别 Promise的用法 ES6其他常用功能 本文来讲"模块化的使 ...

  7. vue第十单元(动态组件 keep-alive(钩子函数) 递归组件(name) 组件命名约定)

    第十单元(动态组件 keep-alive(钩子函数) 递归组件(name) 组件命名约定) #课程目标 熟练掌握动态组件的实现 掌握keep-alive缓存组件,以及相应的钩子函数 熟练掌握递归组件, ...

  8. Web服务器-HTTP相关-快速整一个服务器响应浏览器(3.2.1)

    @ 目录 1.HTTP分析 2.简单服务器 关于作者 1.HTTP分析 当你去访问一个网址的时候,浏览器会发送而各种头信息给服务器 然后服务器根据信息,返回一定数据的格式 最简单的就是下面的代码 自己 ...

  9. 【PY从0到1】第六节 用户输入while循环

    # 6 第六节 用户输入while循环 # 1> 重要的函数--input() # 我们先讲解一下input():当Python碰到input()后会执行括号内的语句. # 随后等待用户的输入. ...

  10. 关于 Softmax 回归的反向传播求导数过程

    对于 \(Softmax\) 回归的正向传播非常简单,就是对于一个输入 \(X\) 对每一个输入标量 \(x_i\) 进行加权求和得到 \(Z\) 然后对其做概率归一化. Softmax 示意图 下面 ...