基本语法-程序流程控制

程序流程控制

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

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

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

顺序结构

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. JavaScript:常用的一些数组遍历的方法

    常用的一些遍历数组的方法: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> ...

  2. spring入门学习

    开发步骤: 1.导入Spring开发的基本坐标 2.编写接口和实现类 3.创建Spring核心配置文件 4.在Spring核心配置文件中配置实现类 5.使用Spring的API获得Bean实例Bean ...

  3. React中对render进行的小优化

    react中state和props变化会造成render的重新渲染,有时候我们会在render函数中进行一些稍微复杂的逻辑运算 比如说,像下边这种 在props中将 industries引入,然后对其 ...

  4. typora软件使用指南

    Markdown学习 标题: 三级标题 四级标题 字体 hello,world! hello,world! hello,world! hello,world! 引用 选择狂神说java,走向人生巅峰 ...

  5. [小专题]另一种字符串匹配的思路——Shift-And算法

    吐槽:前两天打组队赛遇到一个字符串的题考了这个(见:http://acm.hdu.edu.cn/showproblem.php?pid=5972 ) 当时写了个KMP瞎搞然后TLE了(害),赛后去查了 ...

  6. c语言实现一些简单图形的打印

    1 #define _CRT_SECURE_NO_WARNINGS 1 因为笔者采用的是VS的编译环境所以有了上面的这一句话 我们都知道平面图形是由一条条线段构成,所以我们就先实现线段的打印 1 // ...

  7. Spring Cloud 入门教程(一): Eureka 服务注册

    创建一个Maven工程,New-Other-Maven-Maven Probject 点击Next,红色框里的选上 点击Next 点击Finsh就完成了一个Maven Probject的创建. (1) ...

  8. 用Python写个开心消消乐小游戏

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理 提到开心消消乐这款小游戏,相信大家都不陌生,其曾在 2015 年获得过玩家最喜爱的移动单机游戏奖,受 ...

  9. 自学python,从小白到大神,需要多久?

    2020年10月 TIOBE 排行榜超过了 Java, 历史上首次 Python 超越了 Java ,再次让许多朋友对 Python 产生了兴趣,今天我们来梳理下学习 Python 几个阶段或者级别, ...

  10. List<bean> 转换成List<Map>

    //将listmap转换成list实体类 List<OaAttachment>list=new ArrayList<OaAttachment>(); if(Func.isNot ...