在方法里面我们怎么描述解决问题的步骤

三大流程结构

计算机科学家早就证明了,任何算法的实现只需要三种流程结构:顺序、分支和循环。
顺序结构,从程序入口点(Java是main方法)开始,从上至下依次执行所有的程序代码;
分支结构,也叫作选择结构,程序可以根据一定的条件自动选择执行特定的代码;
循环结构,程序会反复执行一段代码,直到某个条件达成为止。

顺序结构

我们之前编写过的程序都是顺序结构的,程序从主方法第一行开始执行,直到最后一行;如果中间调用了其它方法或者类,跳转到相应的位置执行,执行完毕后跳转回来继续按顺序执行。
因此顺序结构并没有太多需要讲解的地方。在这里,我们借机来聊聊Java中的输入和输出。输出就是从程序向外界发送信息,例如将结果输出到终端上;输入则是从外界向程序传递数据,例如通过键盘将一些数值传递到程序中。

输出

在此前的程序中,我们经常使用System.out.println()方法来输出数据到终端(也就是命令行界面,不过Eclipse会捕捉这些信息并显示到相应的栏目中)上并换行(光标会自动切换到下一行),如果不想换行,可以使用System.out.print()方法。该方法会把括号中的内容输出。如果内容结构比较复杂,可以用+把不同的组件连接起来。例如:

public class Output {
    public static void main(String[] args) {
        int a=40;
        System.out.print('A');
        System.out.print(','+'B');
        System.out.print(",C");
        System.out.print("\n");
        System.out.println("Hello"+" world!");
        System.out.println("a="+a);
        System.out.println("a+60="+(a+60));
        System.out.println("a+70="+a+70);
    }
}

输出结果为:

A110,C
Hello world!
a=40
a+60=100
a+70=4070

结果中的第一行A110,C,是程序中四个System.out.print()方法的输出结果,大概第一个字符A,后面的,C是能看明白的,毕竟是按照原样输出的。那个”\n”输出了吗?当然输出了,还记得我们前面提到过的转义字符吗?它就是换行符。你可能还有一个疑惑,那个110是怎么来的?回忆一下数据类型的自动类型转换,当字符型数据参与运算时(那个加号),它们会转换成int类型参与运算,所以,110就是字符,B转换为整数后再相加的结果。
结果中的第二、三、四行也都比较好理解,最后一行为什么不是a+70=110?那个4070怎么回事?
自动类型转换。
因为前面是个字符串,所以+就变成了字符串的连接符(','+'B'这个式子中,字符型数据转换成了整数,所以+就是加号),后面的数据都会转换成字符串,先是整数40转换成了字符串40,然后整数70转换成了字符串70,连接起来之后,就成了a+70=4070
但这两个方法有时不太好用,例如:

public class PrintDouble {
    public static void main(String[] args) {
        double d=987654321;
        double e=3.1415926;
        System.out.println("d="+d);
        System.out.println("e="+e);
    }
}

运行后的输出结果为:

d=9.87654321E8
e=3.1415926

默认使用科学计数法输出,不太符合我们的习惯。
这时,我们可以使用System.out.printf(),上面的例子可以改为:

public class PrintDouble {
    public static void main(String[] args) {
        double d=987654321;
        double e=3.1415926;
        //按照默认格式输出浮点数
        System.out.printf("d=%f\n",d);
        //保留两位小数输出浮点数
        System.out.printf("e=%.2f",e);
    }
}

运行结果是:

d=987654321.000000
e=3.14

printf方法的参数分为两部分,前面的字符串用于格式控制,%?是格式控制字符,用于控制待输出数据的格式,其它部分会照原样输出;其它参数则是待输出的数据,和格式控制字符从左到右一一对应。常用的格式控制字符包括:

格式控制字符 说明
%d 格式化输出整数
%x 格式化输出十六进制整数
%f 格式化输出浮点数
%e 格式化输出科学计数法表示的浮点数
%s 格式化字符串

注意,由于%表示格式控制字符的前导符,因此,连续两个%%表示一个%字符本身。

输入

Java中输入的方法比较多,这里介绍比较常用的一种。我们直接来看代码:

//需要导入Scanner类
import java.util.Scanner;
public class Input {
    public static void main(String[] args) {
        //创建一个Scanner类型的对象sc,它将从系统输入中获取数据
        Scanner sc=new Scanner(System.in);
        System.out.println("敢问高姓大名:");
        //sc对象调用nextLine方法,获取一行输入,并以字符串的形式存入name对象
        String name=sc.nextLine();
        System.out.println("请问贵庚?");
        //sc对象调用nextByte方法,获取输入的byte类型整数,并存入变量age
        byte age=sc.nextByte();
        //将输入的信息输出
        System.out.println("原来您是"+name+",今年"+age+"岁,久仰久仰");
    }
}

在这里,我们创建Scanner类的对象,该对象会连接系统标准输入流,也就是System.in,并将从该输入流获取的数据进行一定的处理(是的,你猜对了,System.out就是系统的标准输出流)。nextLine方法会把一行输入输出转换为字符串,nextByte方法会把输入的数据转换为byte类型的整数。在这里,我们需要根据保存数据的方式来选择合适的nextXXX方法,如果选择的方法不合适,就会发生错误。
我们运行一下这个程序&#x

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值