switch case实现两个数的算术运算

方法一:

package com.liaojianya.chapter1;

import java.util.Scanner;

public class SwitchDemo1
{
	public static void main(String[] args)
	{
		Scanner input = new Scanner(System.in);
		System.out.println("Enter number a : ");
		double a = input.nextDouble();
		System.out.println("Enter number b : ");
		double b = input.nextDouble();
		Action ac = new Action(a, b);
		ac.command(Action.ADD);
		ac.command(Action.SUBTRACT);
		ac.command(Action.MULTIPLY);
		ac.command(Action.DIVIDE);
		ac.command(Action.MOD);
		input.close();
	}
}

class Action
{
	double a;
	double b;
	public Action(double a, double b)
	{
		this.a = a;
		this.b = b;
	}
	public static final int ADD = 1;
	public static final int SUBTRACT = 2;
	public static final int MULTIPLY = 3;
	public static final int DIVIDE = 4;
	public static final int MOD = 5;

	public void command(int c)
	{
		switch (c)
		{
		case 1:
			System.out.println(a + " + " + b + " = " + (a + b));
			break;

		case 2:
			System.out.println(a + " - " + b + " = " + (a - b));
			break;

		case 3:
			System.out.println(a + " * " + b + " = " + (a * b));
			break;

		case 4:
			System.out.println(a + " / " + b + " = " + (a / b));
			break;

		case 5:
			System.out.println(a + " % " + b + " = " + (a % b));
			break;

		default:
			System.out.println("unknown operation!");
			break;
		}
	}

}

  方法二:

package com.liaojianya.chapter1;

import java.util.Scanner;

/**
 * This program demonstrates the use of switch.
 * @author LIAO JIANYA
 *
 */
public class SwitchDemo
{
	public static void main(String[] args)
	{
		Scanner input = new Scanner(System.in);

		System.out.println("Enter number a : ");
		double a = input.nextDouble();
		System.out.println("Enter number b : ");
		double b = input.nextDouble();
		System.out.println("Enter  operater :1代表+,2代表-,3代表*,4代表/,5代表% ");
		int c = input.nextInt();
		switch(c)
		{
			case 1:
			System.out.println(a + " + " + b + " = " + (a + b));
			break;

			case 2:
			System.out.println(a + " - " + b + " = " + (a - b));
			break;

			case 3:
			System.out.println(a + " * " + b + " = " + (a * b));
			break;

			case 4:
			System.out.println(a + " / " + b + " = " + (a / b));
			break;

			case 5:
			System.out.println(a + " % " + b + " = " + (a % b));
			break;

			default:
				System.out.println("unknown operation!");
				break;
		}
	}

}

  运行结果:

Enter number a :
12.3
Enter number b :
32.1
12.3 + 32.1 = 44.400000000000006
12.3 - 32.1 = -19.8
12.3 * 32.1 = 394.83000000000004
12.3 / 32.1 = 0.38317757009345793
12.3 % 32.1 = 12.3

  

时间: 2024-10-26 01:47:20

switch case实现两个数的算术运算的相关文章

C语言笔试题精选1---求两个数之间较大的数,不使用if、while、switch、for、?:/以及任何比较语句

题目:求两个数a.b之间较大的数,不使用if.while.switch.for.?:/以及任何比较语句 #include <stdio.h> int min(int a, int b) { int d = a - b; int flag = ((unsigned int)d) >> 31; int array[] = {b, a}; return array[flag]; } int main(int argc, char *argv[]) { int i_min, a, b; s

有两个变量a和b,不用“if”、“? :”、“switch”或其他判断语句,找出两个数中比较大的

1.问题 There are two int variables: a and b, don't use "if"."? :"."switch" or other judgement statement, find out the biggest one of the two numbers. (有两个变量a和b,不用"if"."? :"."switch"或其他判断语句,找出两个数中比较

不用”if“,”?:“,”switch“或其他判断语句,求两个数中较大的数或较小的数

以下五种方法分别求出较大的数和较小的数的方法.较小数的代码在注释中,但未运行测试. int Find1(int a, int b) { return ((a + b) + abs(a - b)) / 2; //return ((a + b) - abs(a - b)) / 2; } /* 当a大于b时,a-b为正,右移sizeof(int) * 8 - 1后,最右侧一位为0,0^1 = 0: 当a小于b时,a-b为负,右移后最右侧一位为1,1^1 = 1 */ int Find21(int a,

c语言基础表达式, 关系运算符, 逻辑运算符, 位运算符, 数据的取值范围, 分支结构(if...else, switch...case)

1.表达式: 表达式的判断是有无结果(值), 最简单的表达式是一个常量或变量, 如:12, a, 3 + 1, a + b, a + 5 都是表达式 2.BOOL(布尔)数据类型: c语言中除了基本数据类型, 还有BOO数据类型, 以及一些其它的数据类型, 如自定义的结构体数据类型 BOOL数据类型是一种表示非真即假的数据类型, 布尔类型的变量只有YES和NO两个值. YES表示表达式结构为真, 反之, NO表示表达式结果为假(在c语言中, 认为非0即为真), BOOL类型主要用与分支结构或循环

51.从键盘上输入任意两个数和一个运算符(+、-、*、/),根据输入的运算符对两个数计算,并输出结果

?#include<iostream> using namespace std; int main() { int x,y; char a; cout<<"please input two numbers: "<<endl; cin>>x>>y; cout<<"please input an operational character:"<<endl; cin>>a; s

输入两个数,第一个数决定一个nXn的矩阵,第二个数决定从1开始赋值,赋值的上限 (MD花了半天时间,思路不对害死人)

1 输入两个数,第一个数决定一个nXn的矩阵,第二个数决定从1开始赋值,赋值的上限 2 3 比如: 4 5 输入:5 18 6 7 输出: 8 9 1 2 3 4 5 10 11 16 17 18 0 6 12 13 15 0 0 0 7 14 15 14 0 0 0 8 16 17 13 12 11 10 9 18 19 20 21 输入: 4 12 22 23 输出: 24 25 1 2 3 4 26 27 12 0 0 5 28 29 11 0 0 6 30 31 10 9 8 7 32

逆向知识第九讲,switch case语句在汇编中表达的方式

一丶Switch Case语句在汇编中的第一种表达方式 (引导性跳转表) 第一种表达方式生成条件: case 个数偏少,那么汇编中将会生成引导性的跳转表,会做出 if else的情况(类似,但还是能分辨出来的) 1.高级代码: #include "stdafx.h" int main(int argc, char* argv[]) { switch(argc) { case 0: printf("case 0\n"); break; case 1: printf(&

switch case 与 if

case 在编程中偶尔使用到switch case语句,对于case语句的处理,出现了两种错误,现总结如下: 1 case后必须是常量,不能使用‘<’或‘>’这种逻辑运算 2 case后如果是‘||’或者‘&&’逻辑运算,则实际是1或者0 #include <iostream> using namespace std; int main(int argc, char * argv[]) { int i; cin>>i; switch(i) { case

编程之美-----在一个整型数组里找出只出现过一次的那两个数

一.一个数组里除了一个数字之外,其他的数字都出现了两次 用异或来解 #include <iostream> using namespace std; int main() { int T; int n,m; while(cin>>T,T){ cin>>n; while(--T){ cin>>m; n=m^n; } printf("%d\n",n); } return 0; } 扩展: 一个整型数组里除了两个数字之外,其他的数字都出现了两次