Java流程控制
Scanner对象
我们通过Scanner类获取用户的输入。
基础语法:
Scanner s=new Scanner(System.in);
通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取前我们一般需要使用hasNext()与hasNextLine()判断是否还有输入的数据。
- next():
- 一定要读取到有效字符才可以结束输入
- 对输入有效字符之前遇到的空白,next()方法自动去掉
- 只有有效字符之后输入的空白作为分隔符或者结束符
- next()不能得到带有空格的字符串
- nextLine():
- 以enter作为结束符
- 可以获得空白
public class Demo01 {
public static void main(String[] args) {
//创建一个扫描器对象,用于接收键盘数据
Scanner scanner = new Scanner(System.in);
System.out.println("使用next方式接受:");
//判断用户有没有输入字符串
if(scanner.hasNext()){
//使用next方式接受
String str= scanner.next();
System.out.println("输出的内容为"+str);
}
//凡是属于IO流的类如果不关闭就会一直占用资源,要养成好习惯用完就关掉
scanner.close();
}
}
public class Demo02 {
public static void main(String[] args) {
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();
}
}
public class Demo03 {
public static void main(String[] args) {
//输入多个数字,求其总和以及平均数,每输入一个以回车确认,通过非数字来结束输入并执行结果
Scanner scanner = new Scanner(System.in);
//和
double sum=0;
//计算输入了多少个数字
int m=0;
while(scanner.hasNextDouble()){
double x=scanner.nextDouble();
m++;
sum+=x;
}
System.out.println(m+"个数的和为"+sum);
System.out.println(m+"个数的平均值为"+(sum/m));
scanner.close();
}
}
选择结构
if...else
switch语句中的变量类型可以是
- byte,short,int,char
- switch支持String类型
- 同时case标签必须为字符常量或者字面量
public class Demo01 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入内容:");
String s = scanner.nextLine();
if(s.equals("hello")){//少用==判断字符串,用equals可以判断字符串
System.out.println(s);
}
System.out.println("End");
System.out.println("请输入成绩:");
int score = scanner.nextInt();
if(score>=60){
System.out.println("及格");
}else{
System.out.println("不及格");
}
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("E");
}else{
System.out.println("输入成绩不合法");
}
char grade ='C';
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("错误");
}
scanner.close();
}
}
循环结构
- while循环
while(布尔表达式){
}
- do... while循环
do{
}while(布尔表达式)
- for循环
for(初始化;布尔表达式;更新){
}
在IDEA里面直接100.for加回车可以:
for (int i1 = 0; i1 < 100; i1++) {
}
九九乘法表
public class Demo03 {
public static void main(String[] args) {
for (int i = 1; i <= 9; i++) {
for (int i1 = 1; i1 <= i; i1++) {
System.out.print(i1+"*"+i+"="+(i*i1)+"\t");
}
System.out.println();
}
}
}
- 增强for循环
for(声明语句:表达式){
}
int[] numbers = {10,20,30,40,50};
//遍历数组的元素
for(int x:numbers){
System.out.println(x);
}//将numbers数组中数依次赋值给x
- break,continue,goto
break:强行退出循环
continue:终止某次循环,接着进行下次循环的判定。
goto:java中不使用goto,但可以看到一些影子,如标签:下面的outer就是一个标签
public class Demo04 {
public static void main(String[] args) {
//打印101到150之间的质数
//不建议使用
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);
}
}
}
练习
打印三角形5行
public class Demo05 {
public static void main(String[] args) {
//打印三角形 5行
for (int i = 1; i <= 5; i++) {
for(int j=5;j>=i;j--){
System.out.print(" ");
}
for (int i1 = 1; i1 <= 2*i-1; i1++) {
System.out.print("*");
}
System.out.println();
}
}
}
标签:控制,Java,scanner,流程,System,Scanner,println,public,out
From: https://www.cnblogs.com/shijili/p/18000086