Java流程控制
Java流程控制
Scanner对象
java.util.Scanner 可以通过scanner类来获取用户的输入
基本语法:Scanner s = new Scanner(System.on);
通过scanner类的 next() 与 nextline() 方法来获取输入的字符串,再读取前我们一般需要使用hasNEXT() 与 hasNEXTLine() 判断是否还有输入的数据;
//代码:创建一个扫描器对象,用于接收键盘数据
Scanner s = new Scanner(System.on);
System.out.println("使用next方式接收:");
//判断用户有没有输入字符串
if(scanner.hasNext()){
//使用next方式接收
String str = scanner.next();
System.out.println("输出的内容为:"+str)
}
s.close();//凡是属于IO流的类如果不关闭会一直占用资源,用完就关掉
next():
- 一定要读取到有效字符后才可以结束输入;
- 对输入的有效字符之前遇到的空白,next()方法会自动将其去掉;
- 只有输入有效字符后才将其后边输入的空白作为分隔符或者结束符;
- next() 不能得到带有空格的字符串
nextline():
- 以enter为结束符,也就是说nextline()方法返回的是输入回车之前的所有字符
- 可以获得空白
Scanner 的进阶使用
Scanner scanner = new Scanner(System.in);
int i = 0;
float f = 0.0f;
System.out.println("请输入整数");
if(scanner.hasNextInt()){
i = scanner.nextInt;
System.out.println("整数数据" + i );
}else{
System.out.println("输入的不是整数");
}
System.out.println("请输入小数");
if(scanner.hasNextFloat()){
f = scanner.nextFloat;
System.out.println("小数数据" + f );
}else{
System.out.println("输入的不是小数");
}
scanner.close();
顺序结构
语句和语句之间从上到下按顺序执行
选择结构
if单选择结构
if双选择结构
if多选择结构
嵌套的if结构
switch的多选择结构{
switch case语句判断一个变量与一系列值中的某个值是否相等,每个值称为一个分支
switch语句中的变量类型可以是byte,short,int,char,string
switch(expression){
case1: ~~~ break; ~~~ default: ~~}
}
字符--->hashcode() ==》字符串判断的本质
循环结构
while 循环
do while循环-----至少执行一次
for循环
增强for循环{
/*Java5中引入了主要用于数组的增强for循环 for (声明语句:表达式){ //代码 } */ //eg: public class Demo01 { public static void main(String[] args) { int[] numbers = {10,20,30,40,50};//定义了一个数组 for(int x:numbers){ System.out.println(x); } }while(true){
//死循环,监听服务器,闹钟
}
for(第一个条件可以为空;;)//不写东西,也是一个死循环
break,continue:
continue 是请假,break 是辞职
break 在任何循环语句的主体部分,均可用break控制循环的流程。
break用于强行退出循环(break语句也可在switch语句中使用)
continue 语句用在循环语句体中,用于中止某次循环过程,即跳过循环体尚未执行的语句,接着进行下一次是否执行循环的判定
关于goto关键字
goto关键字很早就在程序设计语言中出现。尽管goto仍是Java的一个保留字,但在语言中并未得到正式应用;
Java没有goto,然而,在break和continue这两个关键字的身上,仍存在相关的东西:带标签的break和continue
标签是指后面跟一个冒号的标识符 eg——label:
对Java来说唯一用到标签的地方是在循环语句之前。而在循环之前设置标签的唯一理由是:我们希望在其中嵌套另一个循环,由于break和continue关键字通常只中断当前循环,但若随同标签使用,他们就会中断到存在标签的地方
eg:
public class Demo01 { public static void main(String[] args) { int count = 0; outer:for(int i =101;i<150;i++){ for(int j = 2; j<i/2;j++){ if(i%j == 0){ continue outer; } } System.out.println(i + ""); } }
打印三角形
public static void main(String[] args) { for (int i = 1; i <= 5; i++) { for (int j = 5; j >= i ; j--) { System.out.print(" "); } for (int j = 1; j <= i; j++) { System.out.print("*"); } for (int j = 1; j < i; j++) { System.out.print("*"); } System.out.println(); } }

浙公网安备 33010602011771号