【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.程序流程控制 流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定 ...
随机推荐
- 题解-CF101D Castle
题面 CF101D Castle 给一棵 \(n\) 个节点的带权树,求一种遍历方案,从 \(1\) 出发,每条边走两次,走过所有点,第一次经过每个节点的平均时间最小.输出这个平均时间. 数据范围:\ ...
- 树莓派开发笔记(十一):蓝牙的使用,BlueZ协议(双树莓探测rssi并通过蓝牙互传获取的rssi信号强度)
若该文为原创文章,转载请注明原文出处本文章博客地址:https://blog.csdn.net/qq21497936/article/details/110940484长期持续带来更多项目与技术分享, ...
- kylin的实现原理
摘自https://blog.bcmeng.com/post/kylin-cube.html#kylin%E7%9A%84%E9%A2%84%E8%AE%A1%E7%AE%97%E6%98%AF%E5 ...
- STL——容器(Set & multiset)的查找
1. set.find(elem); //查找elem元素,返回指向elem元素的迭代器. 1 #include <iostream> 2 #include <set> 3 4 ...
- STL——容器(Set & multiset)的默认构造 & 带参构造 & 对象的拷贝构造与赋值
1. 默认构造 set<int> setInt; //一个存放int的set容器. set<float> setFloat; //一 ...
- js上 十四、对象
十四.对象 #1.初识对象 什么是对象? 在js中,一切皆是对象. 对象,生活中可见和不可见的东西,在世界中,客观存在的都是一个对象. 桌子,笔记本,手机,人. 在日常生活中,我们是如何来描述这个对象 ...
- Hbase系列文章
Hbase系列文章 HBase(一): c#访问hbase组件开发 HBase(二): c#访问HBase之股票行情Demo HBase(三): Azure HDInsigt HBase表数据导入本地 ...
- burpsuite无法拦截本地流量
参考文章链接:https://blog.csdn.net/tb_youth/article/details/103436796?utm_medium=distribute.pc_relevant.no ...
- 手把手教你搭饥荒专用服务器(五)—MOD自动下载安装(Windows+Linux)
想了解更详细内容,请点击原文地址:https://wuter.cn/1985.html/ 饥荒专用服务器的mod设置总共有两种方法. 方法一 在本地游戏中更新mod,然后把mod上传到服务器,但是这种 ...
- .netcore 微服务快速开发框架 Anno&Viper 注册中心 (服务上线下线预警通知)
1.微服务时代,服务上线先预警通知 在微服务大行其道的今天,相信很多人都用上了微服务或者是微服务的概念也已经有了一个深刻的了解.今天我们不在这里展开阐述,今天我们要说的是微服务伴侣预警通知. 2.注册 ...