JavaSE流程控制

一、Scanner

        对输入有效字符前的空白,scanner.next()都会自动去掉,而输入有效字符后会将后面输入的空白作为分隔符或者结束符,所以使用next()不能得到带有空格的字符串。而nextLine()则是以Enter作为结束符,可以得到带有空格的字符串,所以在使用上scanner.nextLine()用的较多。在使用Scanner时采用new一个新的对象。凡是IO流的类都需要在使用结束后关闭,不然会一直站占用资源。例子中的if判断语句hasNext是用来判断用户有无输入,如果用nextLine()则是hasNextLine()。scanner的用法很多,还有输入整数nextInt(),输入小数nextFloat()等多种用法。

Scanner scanner = new Scanner(System.in);
System.out.println("使用next方式接收:");
if (scanner.hasNext()){
    String str = scanner.next();
    System.out.println("输入的内容为"+str);
        }
scanner.close();
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("输入的不是小数数据!");
}

二、顺序结构

        程序默认的结构,自上而下的执行。

三、选择结构

        选择结构中有if单选择结构、if-else双选择结构、if-else if-else多选择结构和switch四类。

        1)if单选则结构是在先判断if后面的判断语句是否成立,符合判断条件时,执行语句。

Scanner scanner = new Scanner(System.in);
    
System.out.printf("请输入内容:");
String s = scanner.nextLine();
        
if(s.equals("Hello")){
System.out.println(s);
}
System.out.println("End");
scanner.close();

        2)if-else则是将条件分为两类,符合if后面判断语句的一类,其他的全部归为一类,分别执行语句。

Scanner scanner = new Scanner(System.in);
int score = scanner.nextInt();
        
if(score>60){
   System.out.println("及格");
}else {
   System.out.println("不及格");
}
        
scanner.close();

        3)if-else if-else则是将条件分为n类,中间的else if的个数不限,可以根据需求自定义。头尾if和else固定唯一。不符合if和else if的判断语句的条件全归为else。

Scanner scanner = new Scanner(System.in);
int score = scanner.nextInt();
System.out.println("请输入你的分数:");
if (score==100){
   System.out.println("恭喜满分");
}else if (score<100 && score>=85){
   System.out.println("A");
}else if (score<85 && score>=60){
   System.out.println("B");
}else if (score<60 && score>=0){
   System.out.println("不及格");
}else {
   System.out.println("输入不合法");
}
        
scanner.close();

        4)switch中的case具有穿透现象,会从相匹配的的case标签开始执行,执行完若无break的话则会忽略case的匹配直接向下执行下一个case直到switch尾。在循环中break代表强制退出循环,并不再执行接下来的语句,continue表示终止本次循环,继续下一次循环。顺带提一下,方法中的return也跟break的用法类似,结束方法的运行。

Scanner scanner = new Scanner(System.in);
String grade = scanner.nextLine();
switch (grade){
    case "A" :
        System.out.println("优秀");
        break;
    case "B" :
        System.out.println("良");
        break;
    case "C" :
        System.out.println("及格");
        break;
    default:
        System.out.println("输入错误");
        break;
    }

scanner.close();

  四、循环结构

        循环结构有while,do……while和for三类,for循环中还有一种增强for循环较为特殊。

        1)while

        使用while时会先判断条件语句,符合才执行循环,注意在使用while时要注意尽量避免死循环。

int i = 0;
while(i<100){
    i++;
    System.out.print(" "+i)
}

        2)do……while

        do……while和while不同的地方就在于do……while是先执行一遍语句后再进行判断条件,条件符合则执行下一次循环。

int a = 0;
int sum = 0;
do {
    sum+=a;
    a++;
} while (a<=100);
System.out.println(sum);

        3)for

        for的使用为(初始化;判断条件;迭代)先执行初始化,接下来判断条件,条件为true则进入循环体,循环体结束后进行迭代,再次重复判断条件-循环体-迭代过程。在for循环中初始化,判断条件和迭代都不是必须的,不过仅for(;;)的话是一个死循环。

for (int j = 1; j <= 9; j++) {
     for (int i = 1; i <= j; i++) {
         System.out.print(i+"*"+j+"="+(1*i)+"\t");
     }
     System.out.println();
}//打印99乘法表

        增强for循环的使用为(声明:表达式)把表达式中的每一项赋值给声明语句里。

int[] numbers = {10,20,30,40,50};

for (int x:numbers){
    System.out.println(x);
}

        顺带提一下,Java没有goto,但是有带标签的continue和break,这样中断后将跳到标签处

outer: for (int i = 101; i < 150; i++) {
     for (int j = 2;j<i/2;j++){
         if (i % j == 0){
             continue outer;
         }
     }
     System.out.print(i+"  ");
}  //101~150的所有质数

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值