流程控制

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. 8 Englishi 词根

    测一测 physical obesity skinny sliny stout skeleton external appearance recede unprecededented feinge e ...

  2. 3 Englishi 词根

    1 -able 能..的:具有...性质的 useable moveable adaptable 2 -al  具有...性质的; 属于...的 personal natural regional - ...

  3. mongoose学习记录

    1 const mongoose = require('mongoose'); 2 3 mongoose.connect('mongodb://localhost/playground') 4 .th ...

  4. mongodb 系统命令总结

    1.连接mongodb mongo ip/dbname -u username -p password #mongo -u admin -p admin 127.0.0.1:27017/pagedb ...

  5. 针对docker中的mongo容器增加鉴权

    1. 背景 业务方的服务器经安全检查,发现以docker容器启动的mongo未增加鉴权的漏洞,随优化之 2. 配置 mongo以docker compose方式启动,镜像的版本号为4.2.6,dock ...

  6. [STM32H7] 实战技能分享,如何让工程代码各种优化等级通吃,含MDK AC5,AC6,IAR和GCC

    引出问题:    一个好的工程项目代码,特别是开源类的,如果能做到各种优化等级通吃,是一种非常好的工程案例,这样别人借鉴的时候,可以方便的适配到自己工程里.但实际项目中,针对一款产品代码,我们一般不会 ...

  7. JMS微服务架构 - 关于事务提交失败,自动重新提交的机制

    用JMS编写的微服务,由调用端决定了各个微服务执行时,是否需要保持事务的一致性. 也就是RemoteClient在调用微服务方法前,先调用BeginTransaction明确后面所调用的微服务需要保持 ...

  8. Android——“EditText控件供获取最大长度的方法”

    package utils; import android.app.Activity; import android.content.Context; import android.text.Inpu ...

  9. Python学习之十六_virsh批量获取虚拟机IP地址的方法

    Python学习之十六_virsh批量获取虚拟机IP地址的方法 Linux命令说明 for j in \ $(for i in `virsh list |grep -v Id |grep runnin ...

  10. [转帖]金仓数据库KingbaseES表空间介绍

    1.表空间的概念 KingbaseES中的表空间允许在文件系统中定义用来存放表示数据库对象的文件的位置.在KingbaseES中表空间实际上就是给表指定一个存储目录. 2.表空间的作用 通过使用表空间 ...