【Java基础】基本语法-程序流程控制
基本语法-程序流程控制
程序流程控制
流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模块。
其流程控制方式采用结构化程序设计中规定的三种基本流程结构,即:
- 顺序结构
- 分支结构
- 循环结构
顺序结构
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基础】基本语法-程序流程控制的更多相关文章
- Java基本语法--程序流程控制
流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模块.流程控制方式采用结构化程序设计中规定的三种基本流程结构,即:顺序结构.分支结构.循环结构.本篇博客主要是对 ...
- java 基础one ---运算符and流程控制
首先java这个了解下java的基础 首先java文件都是以.java结尾的 然后 他所有的内容都是有一个入口的就是放在了public static void main(String [] args ...
- Java 基础 引用数据类型 和 流程控制
引用数据类型 与定义基本数据类型变量不同,引用数据类型的变量定义及复制有一个相对固定的步骤和格式: 数据类型 变量名 = new 数据类型(); 如:String st = new String(); ...
- Java语言中的程序流程控制
(1. 流程控制 有三种基本技术可以改变程序的控制流程: A.调用方法 :将导致控制流程离开当前方法,转移到被调用的方法. B.选择 : a. if / else 语句 b. switch语句 ...
- Java 基础(8)——流程控制
上次的运算符都消化好了吗?每一天都要用到一些哦~ 以前有提到过一嘴,程序执行都是从上到下执行的,emm,学到这里,感觉这句话是对的也是错的了…… 如果都是一行一行执行下去的话,上节课的例子: 今天不上 ...
- week_one-python基础 基本语法、流程控制
金角大王的紫金葫芦,python开发环境介绍链接:http://list.youku.com/albumlist/show/id_28961509.html # Author:larlly pytho ...
- 3、Java基础语法(下):程序流程控制
程序流程控制 从键盘获取不同类型的变量: 使用Scanner类,具体实现步骤: 1.导包:import java.util.Scanner; 2.Scanner的实例化:Scanner scan = ...
- Java基础-程序流程控制第一弹(分支结构/选择结构)
Java基础-程序流程控制第一弹(分支结构/选择结构) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.if语句 1>.if语句的第一种格式 if(条件表达式){ 语句体: ...
- Java基础语法(4)-流程控制
title: Java基础语法(4)-流程控制 blog: CSDN data: Java学习路线及视频 1.程序流程控制 流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定 ...
随机推荐
- html5shiv.js和respond.min.js作用说明(IE9及以下兼容)
一.在web端页面开发过程中基本都会需要解决的问题(IE兼容): 1.解决ie9以下浏览器对html5新增标签的不识别,并导致CSS不起作用的问题. 2.让不支持css3 Media Query的浏览 ...
- 项目实战:Qt多通道数据采集系统(通道配置、电压转换、采样频率、通道补偿值、定时采集、导出exel和图表、自动XY轴、隐藏XY轴、实时隐藏显示通道)
需求 1.通道使能.选择.更改通道名称.设置显示颜色 2.采样率可设置(Sa/s/chj) 3.单位换算,按照给定的进行换算 4.对通道可进行设置补偿值 5.通道取消可动态显示和隐藏,并可 ...
- AcWing 294. 计算重复
暴力 其实这题的暴力就是个模拟.暴力扫一遍 \(conn(s_1, n_1)\),若出现了 \(res\) 个 \(s_2\). 答案就是 \(\lfloor res / n1 \rfloor\). ...
- Springboot mini - Solon详解(二)- Solon的核心
Springboot min -Solon 详解系列文章: Springboot mini - Solon详解(一)- 快速入门 Springboot mini - Solon详解(二)- Solon ...
- 1.微博回调接口 和绑定user接口
1.1 oauth/views.py 中添加试图函数 http://192.168.56.100:8888/oauth/weibo/callback/ # 通过vue前端传入的code,微博身份验证c ...
- oracle查年度周末日期
1.查年度周末日期sql SELECT distinct TRUNC(TO_DATE('2019-01-01','yyyy-mm-dd')+ rownum,'iw')+ 5 AS sat, TRUNC ...
- oracle归档空间不足的问题(rman删除归档日志)
案例一:归档日志满,数据库用户无法登陆,业务异常 解决方案一(可以登录rman): rman target / RMAN> crosscheck archivelog all; RM ...
- Django DRF 分页
Django DRF 分页 分页在DRF当中可以一共有三种,可以通过setttings设置,也可也通过自定义设置 PageNumberPagination 使用URL http://127.0.0.1 ...
- Pyhton3 文件拷贝
目录 Pyhton3 文件拷贝 shutil.copy()简单使用说明 Pyhton3 文件拷贝 导入模块shutil,使用模块中的shutil.copy()函数进行文件拷贝 shutil.cop ...
- 钩子与API截获
http://www.pudn.com/Download/type/id/19.html