Java学习 流程控制

用户交互Scanner

Scanner对象

  1. Java通过Scanner类获取用户的输入

  2. 基本语法:

Scanner scanner = new Scanner(System.in);
  1. 通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取前我们一般使用hasNext()与hasNextLine()判断是否还有输入的数据
  • next():next()在读到第一个有效字符后,遇到空白就会停止,此处的空白包括回车和空格。

示例:

import java.util.Scanner;

public class Demo01 {
public static void main(String[] args) {
//从键盘接收数据
Scanner scanner = new Scanner(System.in); System.out.println("使用next方法接收:");
//判断用户有没有输入字符串 if(scanner.hasNext()){
//使用next()方法接收
String str1 = scanner.next(); System.out.println("输出:"+str1);
}
//凡是属于IO流的类如果不关闭会一直占用资源,习惯性关闭。
scanner.close();
}
}

结果:

  • nextLine():以Enter为结束符,也就是说nextLine()方法返回的是输入回车之前的所有字符。

    示例:
import java.util.Scanner;
public class Demo01 {
public static void main(String[] args) {
//从键盘接收数据
Scanner scanner = new Scanner(System.in);
System.out.println("使用nextLine方法接收:");
//判断用户有没有输入字符串
if(scanner.hasNextLine()){
//使用nextLine()方法接收
String str1 = scanner.nextLine(); System.out.println("输出:"+str1);
}
//凡是属于IO流的类如果不关闭会一直占用资源,习惯性关闭。
scanner.close();
}
}

结果:

顺序结构

  1. java的基本结构就是顺序结构,是最简单的算法结构,他是有若干个处理步骤组成的,是任何一个算法都离不开的一种基本算法结构。
  2. 示例:
public class Demo02 {
public static void main(String[] args) {
System.out.println("hello1");
System.out.println("hello2");
System.out.println("hello3");
System.out.println("hello4");
System.out.println("hello5");
System.out.println("hello6");//从上到下依次输出
}
}

选择结构

if单选择结构

  1. 我们很多时候需要去判断一个东西是否可行,然后我们才去执行,这样一个过程程序中用if语句来表示。
  2. 语法
if(布尔表达式){
//如果布尔表达式为true将执行的语句
}
  1. 示例:
public class Demo02 {
public static void main(String[] args) {
System.out.println("请输入:");
Scanner scanner = new Scanner(System.in);
//Scanner类的nextLine方法
String s = scanner.nextLine();
//判断字符串是否相等
if(s.equals("lic")){
System.out.println(s);
}
System.out.println("Wan");
scanner.close();
}
}

if双选择结构

  1. 通常我们的需求一个if搞不定,需要有两个判断,就需要一个双选择结构,所以有了if-else结构。
  2. 语法
if(布尔表达式){
//如果布尔表达式为true将执行的语句
}else{
//如果布尔表达式为false将执行的语句
}
  1. 示例
public class Demo02 {
public static void main(String[] args) {
System.out.println("请输入成绩:");
Scanner scanner = new Scanner(System.in);
int score = scanner.nextInt(); if(score>60){
System.out.println("及格");
}
else
System.out.println("不及格"); scanner.close();
}
}

if多选择结构

  1. 补充完善多种选择的需求,所以有多选择结构来处理这类问题。
  2. 语法
if(布尔表达式1){
//如果布尔表达式为true将执行的代码
}else if(布尔表达式2){
//如果布尔表达式为true将执行的代码
}else if(布尔表达式3){
//如果布尔表达式为true将执行的代码
}else{
//如果以上布尔表达式都不为true将执行的代码
}
  1. 示例
public class Demo02 {
public static void main(String[] args) {
System.out.println("请输入成绩:");
Scanner scanner = new Scanner(System.in);
int score = scanner.nextInt(); if(score<=100&&score>=90){
System.out.println("A");
}
else if(score<90&&score>=80)
System.out.println("B");
else if(score<80&&score>=70)
System.out.println("C");
else if(score<70&&score>=60)
System.out.println("D");
else if(score<60&&score>=0)
System.out.println("E");
else{
System.out.println("输入成绩不合法!");
}
scanner.close();
}
}
  1. 一旦其中一个else if语句检测为true 其他的else if语句都将跳过执行!

嵌套的if结构

  1. 语法
if(布尔表达式1){
//如果布尔表达式1为true将执行的语句
if(布尔表达式2){
//如果布尔表达式2为true将执行的语句
}
} //(套娃哈哈哈哈哈)

switch多选择结构

  1. switch case 语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。

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

    1、byte、short、int、char、jdk7之后支持String

    2、从java SE7开始

    3、同时case标签必须为字符串常量或字面量

  3. 语法

   switch (expression){
case value;
//语句
break;
case value;
//语句
break;
default: //可选
//语句
}
  1. 示例
public class Demo03 {
public static void main(String[] args) {
//case穿透
//switch 匹配一个具体的值
Scanner scanner = new Scanner(System.in);
System.out.println("请输入需要匹配的字符串:");
String s = scanner.nextLine();
switch (s){
case"Lic":
System.out.println("李大聪明");
break;
case "Wan":
System.out.println("王大聪明");
break;
case"Liu":
System.out.println("刘大聪明");
break;
default:
System.out.println("不太聪明");
}
}
}

循环结构

while循环

  1. while是最基本的循环,它的结构为:
while(布尔表达式){
//循环内容
}
  1. 只要布尔表达式为true,循环就会一直执行下去
  2. 大多数情况让循环停止下来的,需要一个让表达式失效的方式来结束循环。
  3. 少数情况循环一直执行,比如服务器的请求响应监听等。
  4. 循环条件一直为true会造成死循环,避免死循环,会影响程序性能或卡死。

    示例:
public class Demo04 {
public static void main(String[] args) {
//输出从1加到100
int i = 0;
int sum = 0;
while(i<=100){
sum= sum +i;
i++;
}
System.out.println(sum);//输出5050
/* 死循环 停止不了 应避免 形象性能
while(true){
//等待客户端连接
//定时检查
}
*/
}

do while循环

  1. while和do while循环相似,不同的是,do while循环至少会执行一次,即使不满足条件。
do{
//代码语句
}while(布尔表达式);
  1. while和do while的区别:

    1、 while先判断后执行,do while先执行后判断

    2、do while总是保证循环体至少会被执行一次,这是主要差别。

    示例:
public class Demo05 {
public static void main(String[] args) {
//输出从1加到100
int i = 0;
int sum = 0;
do{
sum = sum+i;
i++;
}while(i<=100);
System.out.println(sum);
}
}

For循环

  1. for循环是支持迭代的一种通用结构,是最有效、最灵活的循环结构
  2. for循环执行的次数是在执行前就确定的,语法格式如下:
for(初始化;布尔表达式;更新){
//代码语句
}
/*
for循环的几点说明:
最先执行初始化步骤,可以声明一种类型,但可初始化一个或多个循环控制变量。可以是空语句。
然后检测布尔表达式的值。如果为TRUE,循环体执行。否则终止循环,开始执行循环后面的语句。
执行一次循环后,更新循环控制变量(迭代因子控制循环变量的增减)。
再次检测布尔表达式,循环执行上面的过程。
for (;;){
//死循环
}
*/

示例1:计算0~100之间奇数和偶数的和

public class Demo05 {
public static void main(String[] args) {
//计算0到 100之间奇数和偶数的和
int oddSum = 0;
int evenSum = 0;
for (int i = 0; i < 100; i++) {
if(i%2!=0){
oddSum = oddSum +i;
}else{
evenSum = evenSum+i;
}
}
System.out.println("奇数的和:"+oddSum);
System.out.println("偶数的和:"+evenSum);
}
}

示例2:输出1~1000之间能被5整除的数,并且每行输出3个

public class Demo06 {
public static void main(String[] args) {
//输出1~1000之间能被5整除的数,并且每行输出3个
for (int i = 1; i < 1000; i++) {
if(i%5==0){
System.out.print(i+"\t");
}
if(i%(5*3)==0){
System.out.println();
}
}
//println 输出完会换行
//print 输出完不会换行
}
}

示例3:打印九九乘法表

public class Demo07 {
//打印九九乘法表
public static void main(String[] args) {
for (int j = 1; j <= 9; j++) {//外循环控制行 for (int i = 1; i <= j ; i++) {//内循环控制列 i<=j是为了去掉重复项
System.out.print(i+"*"+j+"="+(i*j)+"\t");
}
System.out.println();
} }
}

增强for循环

  1. Java5引入了一种用于数组或集合的增强型for循环
  2. 格式如下:
for(声明语句:表达式){
//代码语句
}
  1. 声明语句:声明新的变量,该变量的类型必须与数组元素的类型匹配。其作用域限定在循环语句块,此值与此时数组元素的值相等。
  2. 表达式:就是要访问的数组名,或者是返回值为数组的方法

    示例:
public class Demo08 {
public static void main(String[] args) {
int [] numbers = {10,20,30,40,50}; //定义了一个数组
//遍历数组的元素
//增强for循环
for(int x:numbers){
System.out.println(x);
}
}
}

Java学习--流程控制的更多相关文章

  1. Java的流程控制和C++的异同

    Java的流程控制和C++基本相似 现将不同的地方总结一下,以便快速掌握. Java的特殊流程控制的特殊部分: 1.顺序结构  -- 没有区别 2.分之结构  -- 没有区别 3.循环结构 1> ...

  2. 【Java】流程控制

    文章目录 流程控制 一.用户交互scanner 1.1 Scanner对象 1.2 Scanner进阶使用 二.顺序结构 三.选择结构 3.1 if单选择结构 3.2 if双选择结构 3.3 if多选 ...

  3. Java基础-流程控制(04)

    在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的.也就是说程序的流程对运行结果有直接的影响.所以,我们必须清楚每条语句的执行流程.而且,很多时候我们要通过控制语句的执行顺序来实现我 ...

  4. Shell脚本学习 - 流程控制和函数

    继续Shell的学习.上两篇是关于基本数据类型,基本语法以及运算符相关,这一篇是流程控制相关(if, for, while) 流程控制 if else 流程控制不可为空,如果else没有语句执行,就不 ...

  5. Java程序流程控制之if-else if-else

    java基础之流程控制(一)    流程控制 Flow Control :       流程控制语句是编程语言中的核心之一.可以分为 分支语句.循环语句和跳转语句.        本讲内容包括分支语句 ...

  6. Java程序流程控制

    程序流程控制有 选择,循环,以及跳转结构 选择结构中无非就是 If 和 switch语句我两种都做了一些小案例 1. 利用Scanner库来获得控制台用户输入的数字与代码中定义的变量比较 packag ...

  7. 【Java】流程控制 - 顺序结构、 选择(分支)结构(单分支、双分支、多分支、嵌套)、循环结构(for、while、do...while)、跳转语句(break、continue)

    流程控制语句结构 文章目录 流程控制语句结构 一. 顺序结构 1. 输出语句 2. 输入语句 3.code 二.复合语句 三. 分支结构 1. 条件判断 1.单分支结构 2.双分支结构 3.多分支结构 ...

  8. 04-Python入门学习-流程控制

    一.流程控制if 语法1: if 条件:  code1  code2  code3  .... age=180 height=163 weight=75 sex='female' is_beautif ...

  9. PHP学习 流程控制和数组

    flow control 流程控制decision structure 判断结构loop structure 循环结构 if(condition){statement1;} if(){}else{} ...

随机推荐

  1. K8S 部署Dashboard UI

    Kubernetes Dashboard是Kubernetes集群的通用.基于Web的UI.它允许用户管理集群中运行的应用程序并对其进行故障排除,以及管理集群本身. 访问到DashBoard有两种方式 ...

  2. Vue基础篇 之 v-model 模拟

    我们知道vue中 为简化表单输入 提供了v-model 的语法绑定 将 vue的属性和表单元素进行了双向绑定 大大简化了表单数据操作的数据绑定 那么v-model 是如何实现双向绑定的呢? 今天我们来 ...

  3. mac安装java环境

    1.java安装包获取: 链接:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html 2.验证安装是否成 ...

  4. 《HALCON数字图像处理》第一、二章笔记

    目录 第一章 绪论 1.1 图像和图像处理 1.1.1 图像 1.1.2 数字图像 1.1.3 图像处理及其发展过程 1.2 数字图像处理的步骤和方法 1.3 数字图像处理系统的硬件组成 1.4 数字 ...

  5. PostgreSQL 13支持增量排序(Incremental Sorting)

    PostgreSQL 13支持增量排序(Incremental Sorting) PostgreSQL 13一个重要的功能是支持增量排序,使用order by 时可以加速排序,SQL如下 select ...

  6. CSS 技术

    浏览本篇文章前可以先看之前的前端网页介绍和html常用标签以便更容易理解 本文目录: 目录 CSS 技术介绍 CSS 语法规则 CSS 和 HTML 的结合方式 第一种: 第二种 第三种 CSS 选择 ...

  7. [WUSTCTF2020]朴实无华-1

    1.打开连接只有如下界面:    2.用bp抓包分析包内数据,未发现有用的信息:    3.进行目录扫描,获得robots.txt文件并进行访问:       4.访问/fAke_f1agggg.ph ...

  8. Qt数据可视化(散点图、折线图、柱状图、盒须图、饼状图、雷达图)开发实例

    ​  目录 散点图 折线图 柱状图 水平柱状图 水平堆叠图 水平百分比柱状图 盒须图 饼状图 雷达图 Qt散点图.折线图.柱状图.盒须图.饼状图.雷达图开发实例. 在开发过程中我们会使用多各种各样的图 ...

  9. jQuery获取市、区县、乡镇、村

    效果图: 首先根据自己方法把地区树状结构json字符串拿到 html下拉框和js写法如下: <select class="form-control" style=" ...

  10. colab解压.tar.gz文件指令

    !tar -zxvf flower_photos.tar.gz 成功后如图: