Java流程控制(Scanner)
3.1用户交互Scanner
可以通过Scanner类来获取用户的输入:
语法: Scanner s = new Scanner(System.in);
通过Scanner类的next()与nextLine()方法获取输入的字符串;
读取之前,使用hasNext()与hasNextLine()来判断是否还有输入的数据。
package com.hch.scanner;
import java.util.Scanner;
public class Demo01_Scanner {
public static void main(String[] args) {
//创建一个扫描器接收对象(键盘输入值)
Scanner scanner = new Scanner(System.in);
System.out.println("用next方法接收:");
//判断用户有没有输入字符串
if (scanner.hasNext()){
String str = scanner.next();
System.out.println("输出的内容:"+str);
}
//凡是属于IO流的类如果不关闭,则会一直占用资源。
scanner.close();
System.out.println("用nextLine方法接收:");
// if (scanner.hasNextLine()){
// String str1 = scanner.nextLine();
// System.out.println("输出内容2:"+str1);
// }
// scanner.close();
}
}
Scanner对象:
·next():
1、一定要读取到有效字符后才可以结束输入。
2、对输入有效字符之前遇到的空白,next方法会自动将其去掉。
3、只有输入有效字符后才将后面输入的空白作为分隔符或者结束符。
4、next()不能得到带有空格的字符串。
·nextLine():
1、以Enter键为结束符,即:输出所有Enter键之前的字符串包括空格
2、可以获得空白
3.2顺序结构
Java最基本的结构就是顺序结构。(从上往下顺序依次执行)
3.3选择结构
3.3.1 if单选择结构
if(布尔表达式){
//如果布尔表达式为true将要执行的语句
}
package com.hch.struct;
import java.util.Scanner;
public class Demo01_if {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入:");
String s = scanner.nextLine();
//equals:判断字符串是否相等
if (s.equals("Hello")){
System.out.println(s);
}
System.out.println("End");
scanner.close();
}
}
3.3.2if双选择结构
if(布尔表达式){
//如果布尔表达式为true的时候执行的语句
}else{
//如果为false执行的语句
}
package com.hch.struct;
import java.util.Scanner;
public class Demo02_if {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入成绩:");
int score = scanner.nextInt();
if (score >= 60){
System.out.println("及格");
}else {
System.out.println("不及格");
}
scanner.close();
}
}
3.3.3if多选择结构(注意:一个if语句可以有多个else if语句但是只能有一个 if 语句和一个 else 语句)
if(布尔表达式1){
//如果布尔表达式1为true时执行语句
}else if(布尔表达式2){
//如果布尔表达式2为true时执行
}...else if(布尔表达式n){
//如果布尔表达式n正确执行代码
}else{
//如果以上都不正确执行语句
}
package com.hch.struct;
import java.util.Scanner;
public class Demo03_if {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入成绩:");
int score = scanner.nextInt();
if (score > 100){
System.out.println("超出范围");
}else if (score == 100){
System.out.println("恭喜满分!!!");
}else 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("不及格");
}else {
System.out.println("非法成绩");
}
scanner.close();
}
}
3.3.4嵌套的if结构
if(布尔表达式1){
//如果布尔表达式1为true执行的代码
if(布尔表达式2){
//如果表达式2为true执行的语句.....
}
}
3.3.5switch多选择结构(switch case语句)
switch中的变量类型可以是:
1、byte、short、int、或者char
2、从JavaSE7开始,switch支持字符串String类型
3、同时case标签必须为字符串常量或字面量
switch(expression){
case value:
//语句
break;//可选
case value:
//语句
break;//可选;case数量任意
default://可选
//语句
}
==关于break 和 continue的联系与区别:==
1、break在任何循环语句的主体部分;continue用在循环语句体中。
2、break用于强行退出循环,不执行剩下的语句;continue用于跳过尚未执行的语句,接着下一次是否执行循环的判断
package com.hch.struct;
public class Demo03_switch {
public static void main(String[] args) {
char grade = 'A';
//switch ==> 匹配一个值
switch (grade){
case 'A':
System.out.println("优秀");
break;
case 'B':
System.out.println("良好");
break;
case 'C':
System.out.println("合格");
break;
case 'D':
System.out.println("加油");
break;
case 'E':
System.out.println("挂课");
break;
default:
System.out.println("未知等级");
}
}
}
3.4循环结构
3.4.1 while循环
1、只要布尔值为true,循环就会一直执行下去
2、避免死循环(我们需要一个表达式让循环停止或者失效)
while(布尔表达式){
//循环内容
}
package com.hch.struct;
public class Demo05_while {
public static void main(String[] args) {
// int i = 0;
// while (i<=100){
// i++;
// }
// System.out.println(i);
int i = 0;
int sum = 0;
while (i<=100){
sum = sum + i;
i++;
}
System.out.println(sum);
}
}
3.4.2 do...while循环
1、与while不同。do while语句至少执行一次,do后面的语句。
2、while先判断后执行,do while先执行后判断。
do{
//语句
}while(布尔表达式);
package com.hch.struct;
public class Demo06_do_while {
public static void main(String[] args) {
int i = 0;
int sum = 0;
do {
sum = sum + i;
i++;
}while (i<=100);
System.out.println(sum);
}
}
3.4.3 for循环
1、支持迭代的一种通用结构,是最有效、最灵活的循环结构。
2、最先执行初始化步骤,可以声明一个或多个控制变量也可为空值。
3、然后检测布尔值是否为true,是则执行,否则跳出。
for(初始化;布尔表达式;更新操作){
//语句
}
package com.hch.struct;
public class Demo07_for {
public static void main(String[] args) {
// for (int i =0;i<=100;i++){
// System.out.println(i);
// }
// 100.for 快捷生成IDEA生成
// int oddSum = 0;
// int evenSum = 0;
// for (int i = 0;i <= 100; i++){
// if (i%2 != 0){ //i/2余数不等于0 为奇数
// oddSum+=i;
// }else { //偶数
// evenSum+=i;
// }
// }
// System.out.println();
// System.out.println("奇数和:"+oddSum);
// System.out.println("偶数和:"+evenSum);
for (int i = 1;i <= 9;i++){
for (int j = 1;j <= i; j++){
System.out.print(i+"*"+j+"="+(j*i) + "\t");
}
System.out.println();
}
}
}
Java流程控制(Scanner)的更多相关文章
- Java流程控制与Scanner类的使用
Java流程控制与Scanner类的使用 Scanner类 Scanner类可以使程序接受键盘输入,实现人机交互 一个完整的Scanner的使用例子: //创建一个扫描器对象,用于接收键盘数据 Sca ...
- 第4天 JavaDoc生成文档&Java流程控制(第一节:用户交互Scanner)
JavaDoc生成文档 javadoc命令是用来生成自己的API文档 参数信息: @author 作者名 @version 版本号 @since 指明需要最早使用的jdk版本 @param 参数名 @ ...
- 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 ...
- 044 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 06 使用do-while循环实现猜字游戏
044 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 06 使用do-while循环实现猜字游戏 本文知识点:do-while循环深入运用 案例练习 案例 ...
- 038 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 05 案例演示switch结构-星期的表示案例以及总结
038 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 05 案例演示switch结构-星期的表示案例以及总结 本文知识点:案例演示switch结构并对sw ...
- java流程控制学习
Java流程控制 计算的步骤就是算法. 1.用户交互Scanner next()不能得到带有空格的字符串.[它是以空格为结束符]nextline()可以,[它是以回车为结束符] 2.顺序结构 从上到下 ...
- 4. Java流程控制
4.Java流程控制 4.1.用户交互Scanner 之前我们学的基本语法中我们并没有实现程序和人的交互,但是Java给我们提供了这样一个工具类,我们可以获取用户的输入.java.util.Scann ...
- Java 流程控制
Java 流程控制 Java 分支结构 - if...else/switch 顺序结构只能顺序执行,不能进行判断和选择,因此需要分支 ...
随机推荐
- mysql错误详解(1819):ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
O(∩_∩)O哈哈~ 在学习 Mysql 的时候又遇到了新问题了 o(╥﹏╥)o 当我在准备为用户授权的时候: grant all privileges on *.* to 'root'@'%' id ...
- js语法基础入门(6)
6.函数 6.1.函数是什么? 函数就是具有名称和一定功能点代码块,这段代码块被封装起来,由一组语句组成,它们是JavaScript的基础模块单元,用于代码复用.信息隐藏和组合调用.一般来说,所谓编程 ...
- Oracle 存储过程中的临时表数据自动清空
问题叙述: 用 EXECUTE IMMEDIATE 动态往临时表插入数据,跟踪发现插入临时表后数据会立马清空,按理说等存储过程执行完才会清空临时表才对,现在是执行插入语句后下一步验证就发现临时表就没有 ...
- $.post 参数定义
//重置密码 function ResetPassword(id, accounts) { //alert("重置密码id-" + id + "-" + acc ...
- 简单的Linq查询语句
下面我来我大家介绍几种简单的查询方式. 1.简单语法 这个LINQ语句的第一个关键字是from,from后面加的是范围变量,范围变量后加in,后加上事先实例化的模型,然后点出数据的来源. List是列 ...
- 在web开发中,为什么前端比后端更得到转行程序员的青睐?必看!
1.Web开发分类与区别 人们通常将Web分为前端和后端,前端相关的职位有前端设计师(UI/UE),前端开发工程师,后端相关的有后端开发工程师. 2.技术栈区别 看各大招聘网站上,公司对前端开发工程师 ...
- windows 创建python独立开发环境
参考廖雪峰教程:https://www.liaoxuefeng.com/wiki/1016959663602400/1019273143120480 进去的方式需要修改,找到自己创建的文件目录 在控制 ...
- JQuery预览图片
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 飞越面试官(三)--JVM
大家好!我是本公众号唯一官方指定没头屑的小便--怕屁林. JVM,全称Java Virtual Machine,作为执行Java程序的容器,几乎代理了Java内存与服务器内存的交互,可以说是程序拥 ...
- css盒子模型的深入理解,在块级、行内元素的区别和特性
css盒子模型用于处理元素的内容.内边距.边框和外边距的方式简称.元素框的最内部分是实际的内容,直接包围内容的是内边距.内边距呈现了元素的背景.内边距的边缘是边框.边框以外是外边距,外边距默认是透明的 ...