流程控制

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. 在mounted 中发生异步和同步共存的问题

    https://www.cnblogs.com/ifon/p/12391923.html

  2. 《模拟龙生》|500行Go代码写一个随机冒险游戏|巨龙修为挑战开启

    一.前言 新年就要到了,祝大家新的一年: 龙行龘龘, 前程朤朤! 白泽花了点时间,用 500行 Go 代码写了一个控制台的小游戏:<模拟龙生>,在游戏中你将模拟一条新生的巨龙,开始无尽的冒 ...

  3. ACP 知识点总结

    记录下学习ACP过程不断遇到的且需要记录的知识点: 在阿里云专有网络VPC创建之后,路由器也是随着VPC一起自动创建,所以不需要手动创建,这个时候需要继续创建交换机才能在交换机种创建其他云产品. 7层 ...

  4. ApplicationContextAware 的理解和应用

    当我们在项目中获取某一个spring bean时,可以定义一个类,实现ApplicationContextAware  该接口,该接口可以加载获取到所有的 spring bean. package c ...

  5. Java开发者的Golang进修指南:从0->1带你实现协程池

    在Java编程中,为了降低开销和优化程序的效率,我们常常使用线程池来管理线程的创建和销毁,并尽量复用已创建的对象.这样做不仅可以提高程序的运行效率,还能减少垃圾回收器对对象的回收次数. 在Golang ...

  6. mysql-三元表达式函数-if

  7. JS逆向实战27——pdd的anti_content 分析与逆向

    声明 本文章中所有内容仅供学习交流,抓包内容.敏感网址.数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除! 本文已在微信公众号发布 目 ...

  8. [转帖]离线部署单机kubenetes-1.28.4

    系统版本: openEuler 22.03 (LTS-SP2) docker版本:24.0.7 kubenetes版本: 1.28.4 虚机IP: 192.168.177.138 基于 https:/ ...

  9. [粘贴]使用 Dumpling 导出数据

    https://docs.pingcap.com/zh/tidb/stable/dumpling-overview#dumpling-%E4%B8%BB%E8%A6%81%E9%80%89%E9%A1 ...

  10. [转帖]Fiddler抓取Chrome浏览器访问baiud.com报NET::ERR_CERT_COMMON_NAME_INVALID

    错误现象 解决方法: 1.Chrome浏览器地址栏中输:chrome://net-internals/#hsts 2.在Query HSTS/PKP domain处搜索www.baidu.com网站, ...