if语句&switch&Scanner
if流程控制语句:
if 语句的用语法如下:
if(boolean表达式){
//如果条件为true那么执行
}
只有条件为true时才会执行,否则执行if语句后面的代码。
实例代码:
public class Mian {
public static void main(String[] args) {
// TODO Auto-generated method stub
if (false) {
// 条件成立执行
System.out.print("我成功了");
}
}
}
控制台打印我成功了
if...else语句
if 语句后面可以跟 else 语句,当 if 语句的布尔表达式值为 false 时,else 语句块会被执行。
if…else 的用法如下:
if(false){
//条件true执行
}else{
//当条件为false则执行
}
实例代码:
public class Mian {
public static void main(String[] args) {
// TODO Auto-generated method stub
if (false) {
// 条件成立执行
System.out.print("我成功了");
}else {
// 条件不成立执行
System.out.println("我失败了");
}
} }
if...else if...else 语句
if 语句后面可以跟 elseif…else 语句,这种语句可以检测到多种可能的情况。
使用 if,else if,else 语句的时候,需要注意下面几点:
- if 语句至多有 1 个 else 语句,else 语句在所有的 elseif 语句之后。
- if 语句可以有若干个 elseif 语句,它们必须在 else 语句之前。
- 一旦其中一个 else if 语句检测为 true,其他的 else if 以及 else 语句都将跳过执行
if...else if语法格式如下:
if(布尔表达式 1){
//如果布尔表达式 1的值为true执行代码
}else if(布尔表达式 2){
//如果布尔表达式 2的值为true执行代码
}else if(布尔表达式 3){
//如果布尔表达式 3的值为true执行代码
}else {
//如果以上布尔表达式都不为true执行代码
}
实例代码:
public class Test {
public static void main(String args[]){
int x = 30;
if( x == 10 ){
System.out.print("x等于10");
}else if( x == 20 ){
System.out.print("x等于20");
}else if( x == 30 ){
System.out.print("x等于30");
}else{
System.out.print("这是 else 语句");
}
}
}
控制台打印:x等于30
嵌套的 if…else 语句
使用嵌套的 if…else 语句是合法的。也就是说你可以在另一个 if 或者 elseif 语句中使用 if 或者 elseif 语句。
语法
嵌套的 if…else 语法格式如下:
if(布尔表达式 1){
////如果布尔表达式 1的值为true执行代码
if(布尔表达式 2){
////如果布尔表达式 2的值为true执行代码
}
}
实例代码:
public class Mian {
public static void main(String[] args) {
// TODO Auto-generated method stub
int a=3;
int b=4;
if (a==3) {
if (4==4) {
System.out.println("a等于3,b等于4");
}
}
}
}
接下来介绍一下switch语句:
switch语法:
switch(expression){
case value :
//语句
break; //可选
case value :
//语句
break; //可选
//你可以有任意数量的case语句
default : //可选
//语句
}
switch case 语句有如下规则:
switch 语句中的变量类型可以是: byte、short、int 或者 char。从 Java SE 7 开始,switch 支持字符串 String 类型了,同时 case 标签必须为字符串常量或字面量。
switch 语句可以拥有多个 case 语句。每个 case 后面跟一个要比较的值和冒号。
case 语句中的值的数据类型必须与变量的数据类型相同,而且只能是常量或者字面常量。
当变量的值与 case 语句的值相等时,那么 case 语句之后的语句开始执行,直到 break 语句出现才会跳出 switch 语句。
当遇到 break 语句时,switch 语句终止。程序跳转到 switch 语句后面的语句执行。case 语句不必须要包含 break 语句。如果没有 break 语句出现,程序会继续执行下一条 case 语句,直到出现 break 语句。
switch 语句可以包含一个 default 分支,该分支一般是 switch 语句的最后一个分支(可以在任何位置,但建议在最后一个)。default 在没有 case 语句的值和变量值相等的时候执行。default 分支不需要 break 语句。
switch case 执行时,一定会先进行匹配,匹配成功返回当前 case 的值,再根据是否有 break,判断是否继续输出,或是跳出判断。
实例代码:
public class Mian {
public static void main(String[] args) {
// TODO Auto-generated method stub
char grade='A';
switch (grade) {
case 'A':
System.out.println("成绩为A");
break;
case 'B':
System.out.println("成绩为B");
break;
case 'c':
System.out.println("成绩为C");
break;
default:
System.out.println("不知道什么成绩");
break;
}
}
}
控制台打印:成绩为A
如果 case 语句块中没有 break 语句时,JVM 并不会顺序输出每一个 case 对应的返回值,而是继续匹配,匹配不成功则返回默认 case
public class Mian {
public static void main(String[] args) {
// TODO Auto-generated method stub
char grade='D';
switch (grade) {
case 'A':
System.out.println("成绩为A");
case 'B':
System.out.println("成绩为B");
case 'c':
System.out.println("成绩为C");
default:
System.out.println("不知道什么成绩");
//如果匹配不到则执行默认代码
break;
}
}
}
控制台打印:不知道什么成绩
如果 case 语句块中没有 break 语句时,匹配成功后,从当前 case 开始,后续所有 case 的值都会输出
public class Mian {
public static void main(String[] args) {
// TODO Auto-generated method stub
char grade='A';
switch (grade) {
case 'A':
System.out.println("成绩为A");
case 'B':
System.out.println("成绩为B");
case 'c':
System.out.println("成绩为C");
default:
System.out.println("不知道什么成绩");
}
}
}
控制台打印:
成绩为A
成绩为B
成绩为C
不知道什么成绩
如果当前匹配成功的 case 语句块没有 break 语句,则从当前 case 开始,后续所有 case 的值都会输出,如果后续的 case 语句块有 break 语句则会跳出判断。
public class Mian {
public static void main(String[] args) {
// TODO Auto-generated method stub
char grade='A';
switch (grade) {
case 'A':
System.out.println("成绩为A");
case 'B':
System.out.println("成绩为B");
break;
//这里会跳出switch语句
case 'c':
System.out.println("成绩为C");
default:
System.out.println("不知道什么成绩");
}
}
}
控制台打印:
成绩为A
成绩为B
再来介绍一下Scanner(扫描仪)
Scanner类主要是接收控制台里输入的数据
Scanner语法:
Scanner in=new Scanner(System.in);
Scanner使用的三步走:
- 创建扫描仪并导入包import java.util.Scanner;
Scanner in=new Scanner(System.in);
- 使用扫描仪
String name=in.next();
- 关闭扫描仪
in.close();
Scanner支持哪些数据输入呢:
- byte 对应的是nextByte();
- short对应的是nextShort();
- int 对应的是nextInte();
- long对应的是nextLong();
- double对应的是nextDouble();
- float对应的是nextFloar();
- String对应的是next();
- char没有
接下来我们演示一个最简单的数据输入,并通过 Scanner 类的 next() 与 nextLine() 方法获取输入的字符串,在读取前我们一般需要 使用 hasNext 与 hasNextLine 判断是否还有输入的数据:
next:
import java.util.Scanner;
public class Mian {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
if (in.hasNext()) {
//判断是否有数据输入
String str1=in.next();
System.out.println(str1);
}
in.close();
}
}
在控制台输入了:开始 空格 准备好了吗
控制台打印:开始
nextLine:
import java.util.Scanner;
public class Mian {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
if (in.hasNextLine()) {
//判断是否有数据输入
String str1=in.nextLine();
System.out.println(str1);
}
in.close();
}
}
在控制台输入了:开始了空格 准备好了吗?
控制台打印:开始了空格 准备好了吗
next()与nextLine()对比:
next():
- 1、一定要读取到有效字符后才可以结束输入。
- 2、对输入有效字符之前遇到的空白,next() 方法会自动将其去掉。
- 3、只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
- next() 不能得到带有空格的字符串。
nextLine():
- 1、以Enter为结束符,也就是说 nextLine()方法返回的是输入回车之前的所有字符。
- 2、可以获得空白。
if语句&switch&Scanner的更多相关文章
- Java ——if条件语句 switch语句
本节重点思维导图 if条件语句 //如果条件表达式成立,执行语句块 if(条件表达式){ //…语句块 } 如果语句块只有一条语句,大括号可以省略,否则不能省略. 建议,不管有几条语句,都不要省略大 ...
- go语言选择语句 switch case
根据传入条件的不同,选择语句会执行不同的语句.下面的例子根据传入的整型变量i的不同而打印不同的内容: switch i { case 0: fmt.Printf("0") case ...
- 分支语句switch case
Switch case必须与break一起使用 Break 是跳转语句.与switch case连用的时候是跳出最近的{}. static void Main(string[]args ) { //s ...
- goto语句 switch语句
goto语句 #include <iostream> using namespace std; int main() { int i = 1; number: i++; std::cout ...
- 选择语句----switch case
今天学习了选择语句的 switch case是多选一的情况可以使用. 案例: //分别输入月份 几号 输出是今年的多少天 //每年的1,3,5,7,8,10,12月是31天 //今年的2月是28天 其 ...
- 【C语言】-条件语句-switch语句
switch语句: 用于直接处理不同情况下的多路问题. switch语句又可称为开关语句,其执行流程和多分支if语句类似. switch (表达式) { case 常量表达式1:语句组1;break; ...
- Java条件语句 switch case
不得不说的几点小秘密: 1. switch 后面小括号中表达式的值必须是整型或字符型 2. case 后面的值可以是常量数值,如 1.2:也可以是一个常量表达式,如 2+2 :但不能是变量或带有变量的 ...
- 选择语句--switch
switch语句 格式: 执行流程 首先计算出表达式的值 其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束. 最后,如果所有的case都和表达式的值 ...
- 分支语句(switch case)
/switch case 的应用 Console.WriteLine("1.汉堡包"); Console.WriteLine("2.薯条"); Console. ...
随机推荐
- stm32位操作详解
stm32位操作详解 STM32位操作原理 思想:把一个比特分成32位,每位都分配一个地址,这样就有32个地址,通过地址直接访问. 位操作基础 位运算 位运算的运算分量只能是整型或字符型数据,位运算把 ...
- flask狗书
Models.py #coding:utf8 fromflaskimportFlask fromflask_sqlalchemyimportSQLAlchemy app=Flask(__name__) ...
- get、put、post、delete含义与区别
1.GET请求会向数据库发索取数据的请求,从而来获取信息,该请求就像数据库的select操作一样,只是用来查询一下数据,不会修改.增加数据,不会影响资源的内容,即该请求不会产生副作用.无论进行多少次操 ...
- 重温TCP
先放张TCP头图片 一.TCP三次握手目的: 1.保证源主机确定目的主机在线,并可进行通信 2.让源主机检查它是否正在监听试图去连接的端口 3.允许源主机向接收者发送他的起始序列号,使得两主机可以将数 ...
- 今天圆满了----tensorflow安装日志
Ubuntu的安装 不能用easyBCD,因为新电脑是UEFI启动模式,制作了Ubuntu的系统盘,强烈建议只分swap区(2G)和根目录/区,之前因为/home区不够导致重装 建议使用官方安装文档, ...
- 08-Xml & Tomcat
Xml & Tomcat Xml >eXtendsible markup language 可扩展的标记语言 XML 有什么用? 1. 可以用来保存数据 2. 可以用来做 ...
- github第一次引用开源的库
想要使用这个一个东西 第一步就是在中添加上面那句话. 这个应该是俩种使用方法,一种用于java中一个用作控件引用 此时就能使用我们引用的这个库了.
- Jmeter学习系列----2 录制脚本
虽然专业的自动化测试人员都不会选择录制脚本的方式来进行自动化脚本的编写,但是,我们作为初学者还是可以学习一下怎么利用工具来进行脚本的录制,体验一下自动化工具的效率,下面,具体讲下如何使用jmeter自 ...
- VS2008,System.Runtime.InteropServices.COMException (0x800401F3): Invalid class string (Exception from HRESULT: 0x800401F3 (CO_E_CLASSSTRING))
在VS2008环境中编译调试运行不报错,但在发布的exe文件运行就报错 System.Runtime.InteropServices.COMException (0x800401F3): Invali ...
- CSS_圣杯布局和双飞翼布局
参考: 圣杯布局的来历是2006年发在a list part上的这篇文章: http://alistapart.com/article/holygrail 双飞翼布局介绍-始于淘宝UED: http: ...