文章目录
简单的a+b
最开始写出的代码如下,但在网站上显示编译错误(E中可以运行):
Scanner in=new Scanner(System.in);
int a,b;
while(true)
{
a=in.nextInt();
b=in.nextInt();
System.out.println(a+b);
}
之后对代码进行改进
Scanner scanner=new Scanner(System.in);//注意于下面的输入条件对应
while (scanner.hasNext())//判断进行的条件时,需要用的函数
{
int a=scanner.nextInt();
int b=scanner.nextInt();
int c=a+b;
System.out.println(c);
}
java Scanner中的hasNext()
hasNext()方法判断输入(文件、字符串、键盘等输入流)是否还有下一个输入项,若有,返回true,反之false。在这道题目中如果输入的是空格、tab、回车
第一个HelloWorld程序
public class Main//这里必须写Main,要不然会报编译错误
{
public static void main(String[] args)
{
System.out.println("**************************");
System.out.println("Hello World!");
System.out.println("**************************");
}
}
三个数中的最大值
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
int a,b,c;
a=in.nextInt();
b=in.nextInt();
c=in.nextInt();
int max;
max=(a>b?a:b)>c?(a>b?a:b):c;
System.out.println(max);
}
利用这种方法更加便捷
int a,b,c,d;
Scanner input = new Scanner(System.in);
a = input.nextInt();
b = input.nextInt();
c = input.nextInt();
a = a>b?a:b;
a = a>c?a:c;
System.out.println(a);
或者利用这种方法分开进行寻找,赋值给a,最后输出
密码编译问题
正确的程序如下:
Scanner in=new Scanner(System.in);
String s=in.nextLine();
char[] out =new char[s.length()];
for(int i=0;i<s.length();i++)
{
out[i] =(char)(s.charAt(i)+4);
if(s.charAt(i)>=88&&s.charAt(i)<=90||s.charAt(i)>=120&&s.charAt(i)<=122)
{
out[i]=(char)(s.charAt(i)-25);
}
}
System.out.println(out);
问题解决思路:
定义一个和字符串一样的数组,对每一位进行判断然后转换。
其中注意的问题:
1.定义字符串使用String 并且输入的时候用的是in.nextLine;
2.定义一个char型数组需要使用 char[] 名称 =new char[长度];
3.数据类型的转换 前加需要转换的类型
4.charAt()函数 charAt()方法返回指定索引位置的char值
next()、nextLine()、nextInt()
nextLine()方法时,不将空格看做是两个字符串的间隔,而是看作字符串的一部分,返回时,它作为String类型一并返回
Scanner sc=new Scanner(System.in);
System.out.println("使用nextLine()方法,并且输入为:");
String n=sc.nextLine();
System.out.println("输出为:");
System.out.println(n);
}
}
输入: 12 23
输出为: 12 23
使用next()方法时,将空格看作是两个字符串的间隔:
System.out.println("使用next()方法,输入为:");
while(sc.hasNext())
{
System.out.print("输出为:");
String n=sc.next();
System.out.print(n);
}
}
输出为 12输出为 23
使用nextInt()方法时,与next()方法类似,只是它的返回值是int类型的,依旧将空格看作是两个输入的数据的间隔
母牛的故事
思路在c语言训练已经写过了
Scanner in = new Scanner(System.in);
int [] cow = new int[999];
while(true)
{
int n = in.nextInt();
if(n==0)
break;
for(int i = 1;i <= n;i++ )
{
if(i<=4)
cow[i]=i;
else
cow[i]=cow[i-1]+cow[i-3];
}
System.out.println(cow[n]);
}
温度转换
注意题目的要求,需要保留两位小数,可以用printf
Scanner in=new Scanner(System.in);
double F;
F=in.nextDouble();
double c=5*(F-32)/9.0;
System.out.printf("c=%.2f",c);