流程控制

1.Scanner对象

来源:java.util.Scanner 我们可以通过Scanner类来获取用户的输入输出

用户交互Scanner


通过new关键词创建Scanner对象

Scanner input = new Scanner(System.in);

通过Scanner类判断用户是否输入,如果输入则读入一个单词的长度

import java.util.Scanner;

public class demo1 {
public static void main(String[] args){
Scanner input = new Scanner(System.in); //判断用户是否输入
if(input.hasNext()){
String str = input.next();
System.out.println(str); } //方式IO流使用完一定要关闭
input.close();
}
}

通过Scanner类判断用户是否输入,如果输入则读入一行的长度

import java.util.Scanner;

public class demo1 {
public static void main(String[] args){
Scanner input = new Scanner(System.in); //判断用户是否输入
if(input.hasNextLine()){
String str = input.nextLine();//获取一行
System.out.println(str); } //方式IO流使用完一定要关闭
input.close();
}
}

进阶用法


当我们要求输入整数、浮点数、字符串的时候Scanner可以过滤掉一些不是我们想要的东西

import java.util.Scanner;

public class demo1{
public static void main(String[] args){
//创建Scanner对象
Scanner input = new Scanner(System.in);
int i = 0;
float f = 0.0f; if(input.hasNextInt()){ //判断是否为整数
i = input.nextInt();
System.out.println("Int:"+i);
}else if(input.hasNextFloat()){ //是否为浮点数
f = input.nextFloat();
System.out.println("Float:"+f);
}else{ //都不是的话....
System.out.println("Please write down float or int data.");
} input.close();//关闭IO
}
}
import sun.awt.geom.AreaOp;

import java.util.Scanner;

public class demo1{
public static void main(String[] args){
//利用while循环 实现输入N个数字
// 计算总和以及平均数
Scanner input = new Scanner(System.in); double total = 0.0;//存放总数的变量
int cnt = 0;//计数器 System.out.println("Please enter data:");
while(input.hasNextDouble()){ //判断是否输入
System.out.print("Please enter data:");
double temp = input.nextDouble();
cnt++; //计数器递增1
total += temp; //计算总和
}
System.out.println("average:"+total/cnt);
System.out.println("total:"+total); input.close(); //关闭IO
}
}

2.顺序结构

Java的基本结构就是顺序结构,除非特别指明,否则按照顺序一句一句执行,任何一种算法都离不开这种基本算法结构!!!

3.选择结构

在很多时候程序需要判断一个东西是否可行,为了让程序具有分支能力,因此诞生了选择结构

if单选择结构


if(布尔表达式){
//为true的时执行这里
} //下面还是按照顺序结构执行

if双选着结构


if(布尔表达式){
//为true的时执行这里
}else{
//反之执行这里
} //下面还是按照顺序结构执行

if多选择结构


if(布尔表达式1){
//布尔表达式1 为true的时执行这里
}else if(布尔表达式2){
//反之 布尔表达式2为true执行这里
}else if(布尔表达式3){
//反之 布尔表达式3为true执行这里
}else{
//反之 执行这里
} //下面还是按照顺序结构执行

注意:只要一个if else为true那么就会直接跳过其他if else

switch多选择结构

switch(expression){
case value1:
//语句
break;
case value2:
//语句
break;
default:
//语句
}

判断switch括号内部的变量是否为各个value 然后对号入座执行下方的语句知道遇到break,如果都没有对应的value就执行default下方的语句 注:break和default可选

switch语句中的变量类型可以是

  • byte、short、int或者char
  • 从Java SE 7开始可以支持String类型
  • case标签必须表示字符串常量或者字面量

4.循环结构

while循环


如果布尔表达式为true就一直执行循环的内容 反之跳出循环

避免死循环

import sun.awt.geom.AreaOp;

import java.util.Scanner;

public class demo1{
public static void main(String[] args){
int i = 0;
while(i<101){
System.out.println(i);
i++;
}
}
}
import sun.awt.geom.AreaOp;

import java.util.Scanner;

public class demo1{
public static void main(String[] args){
int sum = 0;
int i = 0;
while(i<101){
sum = sum + i;
i++;
}
System.out.println(sum);
}
}

do...while循环


即使不满足条件也要让循环至少执行一次

import sun.awt.geom.AreaOp;

import java.util.Scanner;

public class demo1{
public static void main(String[] args){
int sum = 0;
int i = 0;
do{
System.out.println("我知道条件不符合 但我还是循环了一次");
i++;
}while (i<-1);
System.out.println("i是"+i);
}
}

do..while先执行后判断 while先判断后执行

import sun.awt.geom.AreaOp;

import java.util.Scanner;

public class demo1{
public static void main(String[] args){
String str = "";
int i = 2;
while(i<0){
System.out.println(i);
str = "while";
} do{
System.out.println(i);
str = "do while" + str;
}while (i<-1);
System.out.println(str);
}
}

for循环


for循环会先对其设置好的变量就行初始化,然后判断是否符合条件如何符合条件就执行代码块,如果不符合条件就跳出循环,每次循环结束都会迭代

public class demo1{
public static void main(String[] args){
//for(初始化;条件判断;迭代)
for(int i=1;i<10;i++){
//代码块
System.out.println(i);
}
}
}

for-each循环


主要是用来遍历数组和集合 的增强for循环

public class demo1{
public static void main(String[] args){
int[] number = {10,20,30,40,50}; for(int item:number){
System.out.println(item);
}
}
}

练习题


test1:计算0~100之间偶数和奇数和

test2:用while或者for循环输出1~1000之间能被5整除的数每行输出3个

test3:打印九九乘法表

import sun.awt.geom.AreaOp;

import java.util.Scanner;

public class demo1{

    //计算0到100之间的奇数和偶数的和
static void test1(){ int oddNumberTotal = 0; //奇数
int evenNumberTotal = 0; //偶数 for (int i = 0; i < 100; i++) {
if(i%2 == 0){ //判断是否为偶数
//System.out.println(i);
evenNumberTotal+=i;
}else{
oddNumberTotal+=i;
}
} System.out.println("oddNumberTotal:"+oddNumberTotal);
System.out.println("evenNumberTotal:"+evenNumberTotal); } //用while或for循环输出1~1000之间能被5整除的数 每行输出3个
static void test2(){
for (int i = 0,cnt = 0; i < 1000; i++) {
if(i%5 == 0){ //判断是否为5的倍数
System.out.print(i+"\t");
cnt++; //打印个数递增
} if(cnt == 3){ //当打印个数为3个时
System.out.println(""); //打印换行符
cnt = 0;//重置个数计数器
}
}
} //打印九九乘法表
/*
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
*/
static void test3(){
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= i; j++) {
//没啥好说的 注意j小于等于i
System.out.print(i+"*"+j+"="+i*j+"\t");
}
System.out.println("");
}
} public static void main(String[] args){
System.out.println("======================>习题1");
test1();
System.out.println("======================>习题2");
test2();
System.out.println("======================>习题3");
test3();
}
}

5.break continue

break:可用于任何循环流程,主要作用是强制退出循环

public class demo1{
public static void main(String[] args){ for(int i=1;i<10;i++){
//代码块
System.out.println(i);
if(i == 5){
System.out.println("阎王让你三更走 绝不留你到五更");
break;
}
}
}
}

continue:用来终止某次循环,跳过未执行的语句,但相当于提前结束一次循环

public class demo1{
public static void main(String[] args){ for(int i=1;i<10;i++){
//代码块
if(i == 5){
System.out.println("让你输出了?");
continue;
}
System.out.println(i);
}
}
}

零基础入门学习Java课堂笔记 ——day02的更多相关文章

  1. 学习参考《零基础入门学习Python》电子书PDF+笔记+课后题及答案

    国内编写的关于python入门的书,初学者可以看看. 参考: <零基础入门学习Python>电子书PDF+笔记+课后题及答案 Python3入门必备; 小甲鱼手把手教授Python; 包含 ...

  2. 学习《零基础入门学习Python》电子书PDF+笔记+课后题及答案

    初学python入门建议学习<零基础入门学习Python>.适合新手入门,很简单很易懂.前一半将语法,后一半讲了实际的应用. Python3入门必备,小甲鱼手把手教授Python,包含电子 ...

  3. 《零基础入门学习Python》【第一版】视频课后答案第001讲

    测试题答案: 0. Python 是什么类型的语言? Python是脚本语言 脚本语言(Scripting language)是电脑编程语言,因此也能让开发者藉以编写出让电脑听命行事的程序.以简单的方 ...

  4. 零基础入门学习Python(1)--我和Python的第一次亲密接触

    前言 最近在学习Python编程语言,于是乎就在网上找资源.其中小甲鱼<零基础入门学习Python>试听了几节课,感觉还挺不错,里面的视频都是免费下载,小甲鱼讲话也挺幽默风趣的,所以呢,就 ...

  5. 093 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 02 static关键字 03 static关键字(下)

    093 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 ...

  6. 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 02 封装的代码实现

    088 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 02 封装的代码实现 本文知识点:Java封装的代码实现 说明:因为时间紧张,本人写博客过程中只 ...

  7. 080 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 05 单一职责原则

    080 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 05 单一职责原则 本文知识点:单一职责原则 说明:因为时间紧张,本人写博客过程中只是 ...

  8. 057 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 04 案例:求整型数组的数组元素的元素值累加和

    057 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 04 案例:求整型数组的数组元素的元素值累加和 本文知识点:求整型数组的数组元素的元素值累加和 案例:求整型数 ...

  9. 056 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 03 一维数组的应用

    056 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 03 一维数组的应用 本文知识点:数组的实际应用 程序开发中如何应用数组? 程序代码及其运行结果: 不同数据类 ...

  10. 055 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 02 数组的概念

    055 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 02 数组的概念 本文知识点:数组的概念 数组的声明创建.初始化 在学习数组的声明创建.初始化前,我们可以和之 ...

随机推荐

  1. ios-class-guard - iOS代码混淆与加固实践

    ​ 目录 ios-class-guard - iOS代码混淆与加固实践 摘要 引言 一.class-dump 二.ios-class-guard 混淆原理 三.ios-class-guard 混淆结果 ...

  2. vue中class样式与内联样式

    (1):style使用 <div class="score" :style="{ color: colorComputed(item.status) }" ...

  3. NET Core实战项目之CMS 设计篇 思维导图

    NET Core实战项目之CMS 第七章 设计篇-用户权限极简设计全过程 .NET Core实战项目之CMS 第八章 设计篇-内容管理极简设计全过程 .NET Core实战项目之CMS 第九章 设计篇 ...

  4. Mycat 实现分库分表及读写分离

    本文为博主原创,未经允许不得转载: Mycat 官网: http://mycat.org.cn/ MyCat 权威指南 文档:http://www.mycat.org.cn/document/myca ...

  5. Java标签在循环中的使用

    定义 标签,类似--label1: 放在循环外部,用于内部多重循环语句的跳出 例子 public static void main(String[] args) { Scanner sc = new ...

  6. 如果诸葛亮用C#写出师表...

    看到一篇18年的文章 "C++版<出师表>",站长觉得挺有意思的,就用C# 控制台也实现了一遍,技术上没啥难度,但复制代码费了1.2个小时,纯粹无聊写着玩,看者别在意枚 ...

  7. 基于AHB_BUS的eflash控制器设计-02

    基于AHB-BUS的eflash控制器设计 1.Flash Spec 1.1 地址映射 XADR是10bit?因为一共有1024行 每一行128byte容量,每次读取的粒度就是一个double wor ...

  8. [转帖]Difference between localhost and 127.0.0.1?

    https://www.tutorialspoint.com/difference-between-localhost-and-127-0-0-1#:~:text=The%20most%20signi ...

  9. 快速迁移Grafana/Prometheus等的方式方法

    快速迁移Grafana/Prometheus等的方式方法 背景 有一套鲲鹏环境下面的Grafana监控平台. 同事想能够将平台内的时序数据库等迁移到一个别的机器上进行使用. 自从自己开始搞国产化之后, ...

  10. [转帖]一文读懂容器存储接口 CSI

    https://zhuanlan.zhihu.com/p/470093908 作者 | 惠志来源 | 阿里巴巴云原生公众号 导读:在<一文读懂 K8s 持久化存储流程>一文我们重点介绍了 ...