java流程控制;
一、基础阶段:
1、用户交互Scanner
Scanner对象:
之前我们学的基本语法中我们并没有实现程序和人的交互,但是Java给我们提供了这样一个工具类,我们可以获取用户的输入。
java.util.Scanner 是Java5的新特征,我们可以通过Scanner类来获取用户的输入。
基本语法:
Scanner s = new Scanner(System.in);
通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取前我们一般需要使用hasNext()与hasNextLine()判断是否还有输入的数据。
next():
1、一定要读取到有效字符后才可以结束输入。
2、对输入有效字符之前遇到的空白,next()方法会自动将其去掉。
3、只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
4、next()不能得到带有空格的字符串。
nextLine():
1、以Enter为结束符,也就是说nextLine()方法返回的是输入回车之前的所有字符。
2、可以获得空白。
用hasNext()
1 package com.zhexuejia.www.scanner;
2
3 import java.util.Scanner;
4
5 public class Demo01 {
6 public static void main(String[] args) {
7 //创建一个扫描对象,用户接收键盘数据
8 Scanner scanner = new Scanner(System.in);
9
10 System.out.println("使用next方式接收");
11
12 //判断用户有没有输入字符串
13 if(scanner.hasNext()){
14 //使用next方式接收
15 String str = scanner.next();
16 System.out.println("输入的内容为:");
17 }
18
19 //凡是输入IO流的类,如果不关闭会一直占用资源,要养成好习惯用完就关掉;
20 scanner.close();
21
22 }
23 }
使用hasNextLine()
1 package com.zhexuejia.www.scanner;
2
3 import java.util.Scanner;
4
5 public class Demo02 {
6 public static void main(String[] args) {
7 //从键盘接收数据
8 Scanner scanner = new Scanner(System.in);
9
10 System.out.println("使用next方式接收");
11
12 //判断是否还有输入
13 if(scanner.hasNextLine()){
14 String str = scanner.nextLine();
15 System.out.println("输出的内容为:"+str);
16 }
17 scanner.close();
18 }
19 }
1 package com.zhexuejia.www.scanner;
2
3 import java.util.Scanner;
4
5 public class Demo03 {
6 public static void main(String[] args) {
7 //创建一个扫描对象,用户接收键盘数据
8 Scanner scanner = new Scanner(System.in);
9
10 System.out.println("请输入数据:");
11
12 //使用nextLine()方式接收
13 String str = scanner.nextLine();
14 System.out.println("输入的内容为:");
15
16
17 //凡是输入IO流的类,如果不关闭会一直占用资源,要养成好习惯用完就关掉;
18 scanner.close();
19 }
20 }
1 package com.zhexuejia.www.scanner;
2
3 import java.util.Scanner;
4
5 public class Demo04 {
6 public static void main(String[] args) {
7 Scanner scanner = new Scanner(System.in);
8
9 //从键盘接收数据
10 int i = 0;
11 float f = 0.0f;
12
13 System.out.println("请输入整数:");
14 if(scanner.hasNextInt()){
15 i = scanner.nextInt();
16 System.out.println("输出的整数为:"+i);
17 }else {
18 System.out.println("输入的不知整数!");
19 }
20 System.out.println("请输入小数:");
21 if(scanner.hasNextFloat()){
22 f = scanner.nextFloat();
23 System.out.println("输出的小数为:"+f);
24 }else {
25 System.out.println("输入的不知小数!");
26 }
27
28
29
30 scanner.close();
31 }
32 }
1 import java.util.Scanner;
2
3 public class Demo05 {
4 public static void main(String[] args) {
5 Scanner scanner = new Scanner(System.in);
6
7 //我们乐园输入多个数字,并求其总和和平均数,每输入一个数字用回车确认,通过输入非数字来结束输入并输出结果
8 double sum = 0;
9 //输入了多少个数字
10 int m = 0;
11
12 while (scanner.hasNextDouble()){
13 double x = scanner.nextDouble();
14 m++;
15 sum = sum + x;
16 }
17 System.out.println(m + "个数的和为:"+sum);
18 System.out.println(m + "个数的平均值为:" +(sum / m));
19 scanner.close();
20 }
21 }
顺序结构:
JAVA的基本结构就是顺序结构,除非特别指明,否则就按照顺序- -句- -句执行。
顺序结构是最简单的算法结构。
语句与语句之间,框与框之间是按从上到下的顺序进行的,它是由若干个依次执行的处理步骤
组成的,它是任何一-个算法都离不开的一种基本算法结构。
选择结构:
1、if单选择结构
◆我们很多时候需要去判断十个东西是否可行,)然后我们才去执行,这样一个过程在程序中用if语句来表示
语法:
if(布尔表达式){
//如果布尔表达式为true将执行的语句
}
2、if双选择结构
◆那现在有个需求,公司要收购一个软件,成功了,给人支付100万元,失败了,自己找人开发。
这样的需求用一个if就搞不定了,我们需要有两个判断,需要- -个双选择结构,所以就有了if-
else结构。
语法:
1 if(布尔表达式){
2 //如果布尔表达式为true将执行的语句
3 }else{
4 //如果布尔表达式为flase
5 }
1 import java.util.Scanner;
2
3 public class ifDemo02 {
4 public static void main(String[] args) {
5 //考试分数大于60就是及格,小于60分就是不及格
6 Scanner scanner = new Scanner(System.in);
7 System.out.println("请输入成绩:");
8 int score = scanner.nextInt();
9 if(score > 60){
10 System.out.println("及格");
11 }else{
12 System.out.println("不及格");
13 }
14 }
15 }
3、if多选择结构
我们发现刚才的代码不符合实际情况,真实的情况还可能存在ABCD,存在区间多级判断。比如
90-100就是A, 80-90就是B..等等,在生活中我们很多时候的选择也不仅仅只有两个,所以我
们需要一个多选择结构来处理这类问题!
语法:
1 import java.util.Scanner;
2 public class ifDemo03 {
3 public static void main(String[] args) {
4 //考试分数大于60就是及格,小于60分就是不及格
5 Scanner scanner = new Scanner(System.in);
6 System.out.println("请输入成绩:");
7 int score = scanner.nextInt();
8 if(score == 100){
9 System.out.println("满分");
10 }else if(score < 100 && score >=90){
11 System.out.println("A级");
12 }else if(score < 90 && score >=80){
13 System.out.println("B级");
14 }else if(score < 80 && score >=70){
15 System.out.println("C级");
16 }else if(score < 70 && score >=60){
17 System.out.println("D级");
18 }else if(score < 60 && score >=0){
19 System.out.println("D级");
20 }else {
21 System.out.println("成绩不合法");
22 }
23 }
24 }
4、嵌套的if结构
使用嵌套的if..else语句是合法的。也就是说你可以在另- -个if或者else if语句中使用if或
者else if语句。你可以像if语句- -样嵌套else if..else.
语法:
5、switch多选择结构
◆多选择结构还有一个实现方式就是switch case语句。
◆switch case语句判断-一个变量与一系列值中某个值是否相等,每个值称为-个分支。
switch语句中的变量类型可以是:
byte、short, int 或者char。
从JavaSE7开始
switch支持字符串String类型了
同时case标签必须为字符串常量或字面量。
1 package com.zhexuejia.www.struct;
2
3 public class SwitchDemo01 {
4 public static void main(String[] args) {
5 //成绩
6 char grade = 'C';
7 switch (grade){
8 case 'A':
9 System.out.println("优秀");
10 break;//可选.跳出循环
11 case 'B':
12 System.out.println("良好!");
13 break;
14 case 'C':
15 System.out.println("及格!");
16 break;
17 case 'D':
18 System.out.println("再接再厉");
19 break;
20 case 'E':
21 System.out.println("不及格!挂科");
22 break;
23 default:
24 System.out.println("未知等级!");
25 }
26 }
27 }
反编译:
注意:一个好的程序员,要学会怎么看源码;
循环结构:
1、while循环
while是最基本的循环,它的结构为:
1 while(布尔表达式){ 2 //循环内容 3 }
- 只要布尔表达式为true,循环就会一直执行下去。
- 我们大多数情况是会让循环停止下来的,我们需要一个让表达式失效的方式来结束循环。
- 少部分情况需要循环一直执行,比如服务器的请求响应监听等。
- 循环条件一直为true就会造成无限循环【死循环】,我们正常的业务编程中应该尽量避免死循环。
- 会影响程序性能或者造成程序卡死奔溃!
- 思考:计算1+2+3+...+100=?
1 public class WhileDemo03 {
2 public static void main(String[] args) {
3 //计算1+2+3+...+100=?
4 int i=0;
5 int sum=0;
6 while (i<=100){
7 sum = sum+i;
8 i++;
9 }
10 System.out.println("总和:"+sum);
11 }
12 }
2、do...while循环
◆对于while语句而言,如果不满足条件,则不能进入循环。但有时候我们需要即使不满足条件,
也至少执行一次。
do...while循环和wvhile循环相似,不同的是,do...while 循环至少会执行一次。
1 do { 2 //代码语句1 3 }while(布尔表达式);
1 public class DoWhileDemo01 {
2 public static void main(String[] args) {
3 //计算1+2+3+...+100=?
4 int i=0;
5 int sum=0;
6 do{
7 sum = sum+i;
8 i++;
9 }while (i<=100);
10 System.out.println("总和:"+sum);
11 }
12 }
◆While和do-While的区别:
while先判断后执行。dowhile是 先执行后判断!
◆Do...while总是保证循环体会被至少执行- -次! 这是他们的主要差别。
1 public class DoWhileDemo02 {
2 public static void main(String[] args) {
3
4 int a=0;
5 while (a < 0){
6 System.out.println(a);
7 a++;
8 }
9 System.out.println("===============");
10 do{
11 System.out.println(a);
12 a++;
13 }while (a<0);
14 }
15 }
for循环
◆虽然所有循环结构都可以用while或者d...while表示,但Java提供了另-种语句-- for
循环,使- -些循环结构变得更加简单。
◆for循环语句是支持迭代的一种通用结构,是最有效、最灵活的循环结构。
◆for循环执行的次数是在执行前就确定的。语法格式如下:
for(初始化;布尔表达式;更新) {
//代码语句
}
◆练习1:计算0到1 00之间的奇数和偶数的和
1 public class WhileDemo01 {
2 public static void main(String[] args) {
3 //输出1~100
4 int i= 0;
5 System.out.println(i++);
6
7 //条件满足。执行循环体;否则退出循环
8 while(i<100){
9 i++;
10 System.out.println(i);
11 }
12 }
13 }
◆练习2: 用while或for循环输出1-1000之间能被5整除的数,并且每行输出3个
1 public class ForDemo03 {
2 public static void main(String[] args) {
3 //用while或for循环输出1-1000之间能被5整除的数,并且每行输出3个
4 for (int i = 0; i <= 1000; i++) {
5 if(i % 5==0){
6 System.out.print(i+"\t");
7 }
8 if(i%(5*3)==0){
9 System.out.println();
10 }
11 }
12 //for循环结束
13 System.out.print("\n");
14 System.out.println("for循环结束");
15
16 int i =0;
17 while(i <= 1000){
18 if(i % 5 ==0){
19 System.out.print(i+"\t");
20 }
21 if(i%(5*3)==0){
22 System.out.println();
23 }
24 i++;
25 }
26
27 }
28 }
◆练习3:打印九九乘法表
1 public class ForDemo04 {
2 public static void main(String[] args) {
3 //练习3:打印九九乘法表
4
5 for (int i = 1; i <= 9; i++) {
6 for(int z =1;z <= i;z++ ){
7 System.out.print(i+"*"+z+"="+(i*z) + "\t");
8 }
9 System.out.println();
10 }
11 }
12 }
在Java5中引入了一种主要用于数组的增强型for循环。
◆这里我们先只是见- -面,做个了解,之后数组我们重点使用
◆Java5引入了- -种主要用于数组或集合的增强型for循环。
◆Java增强for循环语法格式如下:
for(声明语句:表达式)
//代码句子
}
◆声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配。其作用域限定在循
环语句块,其值与此时数组元素的值相等。
◆表达式:表达式是要访问的数组名,或者是返回值为数组的方法。
1 public class ForDemo05 {
2 public static void main(String[] args) {
3 int[] numbers = {10,20,30,40,50};//定义一个数组
4
5 //遍历数组的元素;把数字numbers中的每一个元素遍历后赋值给x
6 for(int x : numbers){//
7 System.out.println(x);//从x中取值
8 }
9 }
10 }
break continue:
◆break在任何循环语句的主体部分,均可用break控制循环的流程。break用于强行退出循环,
不执行循环中剩余的语句。(break语句也在switch语句中使用)
◆continue语句用在循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,
接着进行下一-次是否执行循环的判定。
◆关于goto关键字
◆goto关键字很早就在程序设计语言中出现。尽管goto仍是Java的- 一个保留字,但并未在语言中得到正式使用; Java
没有goto。然而,在break和continue这两个关键字的身上, 我们仍然能看出-些goto的影子---带标签的break和
1 public class BreakDemo {
2 public static void main(String[] args) {
3 int i = 0;
4 while (i<100){
5 i++;
6 System.out.println(i);
7 if(i == 30){
8 break;
9 }
10 }
11 }
12 }
continue.
◆
“标签”是指后面跟-一个冒号的标识符,例如: label:
◆对Java来说唯- -用到标签的地方是在循环语句之前。而在循环之前设置标签的唯-理由是:我们希望在其中嵌套另一
个循环,由于break和continue关键字通常只中断当前循环,但若随同标签使用,它们就会中断到存在标签的地方。
1 public class LableDemo {
2 public static void main(String[] args) {
3 //打印101到1500之间的质数
4
5 int count = 0;
6 //若随同标签使用,它们就会中断到存在标签的地方。
7 outer:for(int i = 101;i<= 150 ;i ++){
8 for(int j = 2;j < i/2;j++){
9 if(i % j == 0){
10 continue outer;
11 }
12 }
13 System.out.print(i +" ");
14 }
15 }
16 }
练习:
1 public class TestDemo01 {
2 public static void main(String[] args) {
3 //打印三角形 5行
4
5 for (int i = 0; i < 5; i++) {
6 for (int j = 5; j > i; j--) {
7 System.out.print(" ");
8 }
9 for (int j = 1; j <= i; j++) {
10 System.out.print("*");
11 }
12 for (int j = 1; j < i; j++) {
13 System.out.print("*");
14 }
15 System.out.println();
16
17 }
18
19 }
20 }
java流程控制;的更多相关文章
- JAVA流程控制
JAVA流程控制 example1: --输出九九乘法表 public class chengfabiao { public static void main (String[] args){ ...
- Java学习笔记之:Java流程控制
一.介绍 Java流程控制包括顺序控制.条件控制和循环控制. 顺序控制,就是从头到尾依次执行每条语句操作.条件控制,基于条件选择执行语句,比方说,如果条件成立,则执行操作A,或者如果条件成立,则执行操 ...
- Java流程控制练习--万年历
Java流程控制练习--万年历 标签: Java入坑之旅 0x01. 打印倒三角和正三角 public static void main(String[] args) { // TODO Auto-g ...
- Java 流程控制
Java 流程控制 Java 分支结构 - if...else/switch 顺序结构只能顺序执行,不能进行判断和选择,因此需要分支 ...
- JAVA 流程控制之选择语句
在程序设计时,有三种基本技术可以改变程序的流程控制: 调用方法: 选择: 循环. 在这里,我们主要来讲讲选择语句. JAVA中的选择语句与C语言中的基本相同,包括: if 语句: if/else 语句 ...
- 《快乐编程大本营》java语言训练班-第4课:java流程控制
<快乐编程大本营>java语言训练班-第4课:java流程控制 第1节. 顺序执行语句 第2节. 条件分支语句:if条件语句 第3节. 条件分支语句:switch 条件语句 第4节. 条件 ...
- Java流程控制,for,switch,while.break,continue,return
Java流程控制,for,switch,while.break,continue,return
- 053 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 15 流程控制知识总结
053 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 15 流程控制知识总结 本文知识点: 流程控制知识总结 流程控制知识总结 选择结构语句 循环结构语句 ...
- 052 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 14 Eclipse下程序调试——debug2 多断点调试程序
052 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 14 Eclipse下程序调试--debug2 多断点调试程序 本文知识点: Eclipse下程序调 ...
- 051 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 13 Eclipse下程序调试——debug入门1
051 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 13 Eclipse下程序调试--debug入门1 本文知识点: 程序调试--debug入门1 程序 ...
随机推荐
- top usage
https://www.cnblogs.com/dragonsuc/p/5512797.html
- git 修改 .gitignore 不生效
在使用 Git 时候,发现在 .gitignore 文件中添加内容后,推送成功后并没有生效. 出错原因: .gitignore 文件的内容不对历史文件生效 情景复现: 1. 远端已经有了 .idea ...
- python retry装饰器
from functools import wraps import time # def retry(retry_time, retry_on_result, time_wait): # def t ...
- 当前工程中typescritpt依赖包与依赖包中依赖包类型不一致如何解决
在开发中,遇到文件中引入webpack,但是webpack.ICompiler不一致的情况 //import webpack from 'webpack'; import webpackHot fro ...
- 清理缓存tc
/$SYNC 今天修改自建表的字段,换了参考字段但是SE16N显示一直没有改变,删字段,删表都尝试依旧无果,实际上只是没有清理缓存,扑街,留存
- 32.自定义Java异常捕获处理类及其使用
自定义异常捕获处理类 /** * <h1>异常捕捉</h1> * */ public class ExceptionHandler implements Thread.Unca ...
- Python request模块 携带cookie
# _*_coding:utf-8 _*_ import time import requests import json import sys import random import string ...
- 时钟频率(HZ)与数据传输速率(bit/s)的关系-转载
(24条消息) 时钟频率(HZ)与数据传输速率(bit/s)的关系_子曰小玖的博客-CSDN博客_速率和频率的关系 时钟频率(HZ)与数据传输速率(bit/s)两者是相同的概念.举例:IIC传输位速率 ...
- nacos2.1 新增配置发布失败。请检查参数是否正确
使用官方的docker部署方式,部署了一个单节点nacos server,部署完了后发布配置信息,报错"新增配置发布失败.请检查参数是否正确" 解决方法: 在nacos mysql ...
- MarkDown学习笔记1
# MarkDown学习(一级标题)## 标题(二级)### 三级标题#### 四级标题## 字体*Hello,World!斜体***Hello,World!加粗*****Hello,World!加粗 ...