/*题目:
输入为一行,包括了用空格分隔的三个整数 A、B、C
数据范围均在[-40,40]。输出“A+B+C”的结果。
*/
import java.util.Scanner;
public class AddThree{
public static void main(String args[]){
int a = 0;
int b = 0;
int c = 0;
Scanner s = new Scanner(System.in);
a = s.nextInt();
b = s.nextInt();
c = s.nextInt();
if((a>40||a<-40)||(b>40||b<-40)||(b>40||b<-40)){
System.out.println("某些数据取值超过范围!");
}else{
System.out.println(a+b+c);
}
}
}
/*
输入"10 20 30",输出"60". 此时基本符合题意.
Scanner等待输入时,可以输入多个,相互以空格分隔,以回车符结束.
但存在一个问题,当输入中的浮点数时,比如: 2 3.5 38
程序出现异常:java.util.InputMismatchException
所以,必须在赋值前进行检查,以下程序可以较好实现此功能:*/
import java.util.Scanner;
public class Demo{
public static void main(String args[]){
int a = 0;
int b = 0;
int c = 0;
Scanner s = new Scanner(System.in);
if(s.hasNextInt()){
a=s.nextInt();
}else{
System.out.println("你输入的数据不是整数!");
System.exit(0);
}
if(s.hasNextInt()){
b=s.nextInt();
}else{
System.out.println("你输入的数据不是整数!");
System.exit(0);
}
if(s.hasNextInt()){
c=s.nextInt();
//System.out.println(c);
}else{
System.out.println("你输入的数据不是整数!");
System.exit(0);
}
if((a>40||a<-40)||(b>40||b<-40)||(b>40||b<-40)){
System.out.println("某些数据取值超过范围!");
}else{
System.out.println(a+b+c);
}
}
}
//以上程序能简化吗?比如a,b,c用一个数组表示, 这样判断可以使用循环来写:
import java.util.Scanner;
public class AddThree{
public static void main(String args[]){
int a[] = new int[3];
Scanner s = new Scanner(System.in);
for(int i=0; i<3; i++){
if(s.hasNextInt()){
a[i]=s.nextInt();
}else{
System.out.println("你输入的数据不是整数!");
System.exit(0);
}
}
int sum=0;
for(int i=0; i<3; i++){
if((a[i]>40||a[i]<-40)){
System.out.println("某些数据取值超过范围!");
System.exit(0);
}else{
sum += a[i];
}
}
System.out.println(sum);
}
}
//以上的程序中的判断块为什么不能这么写? 注意以下三条语句是错误的:
(s.hasNextInt)?a=s.nextInt():System.out.println("你输入的数据不是整数!");
(s.hasNextInt)?b=s.nextInt():System.out.println("你输入的数据不是整数!");
(s.hasNextInt)?c=s.nextInt():System.out.println("你输入的数据不是整数!");
/*原因如下:
条件表达式不能取代一般的if语句,仅当if语句中内嵌的语句为赋值语句(且两个分支都给同一变量赋值)时才能代替if语句.
例如:if(a%2==0){printf("even/n");} else {printf("odd/n");}
不能写成:(a%2==0)?printf("even/n"):printf("odd/n");
但可以用下面语句代替: printf("%s/n",(a%2==0?"even":"odd");
该语句的作用是:若 a 为偶数,输出 even;若 a 为奇数,输出odd.
*/
[Java]一道貌似简单的题目:输入三个整数,打印出和.
猜你喜欢
转载自blog.csdn.net/jsqdsq/article/details/78463488
今日推荐
周排行