Loading...
FLodus avatar FLodus 0 Точки

09. Area of Figures Programing Basics Conditional Statements - Lab Help

Въпросът ми е как мога да вмъкна System.out.printf()




import java.util.Scanner;
import java.util.zip.DeflaterOutputStream;

public class Lecture3Ex9AreaOfFigures {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        String figureType = scanner.nextLine();

        double area = 0;
        switch (figureType) {
            case "square": {
                double a = Double.parseDouble(scanner.nextLine());
                area = a * a;
                break;
            }
            case "rectangle": {
                double a = Double.parseDouble(scanner.nextLine());
                double b = Double.parseDouble(scanner.nextLine());
                area = a * b;
                break;
            }
            case "circle": {
                double a = Double.parseDouble(scanner.nextLine());
                area = 2 * Math.PI * a;
                break;
            }
            case "triangle": {
                double a = Double.parseDouble(scanner.nextLine());
                double b = Double.parseDouble(scanner.nextLine());
                area = 0.5 * a * b;
                break;
                }
            }
        }
    }
}


Тагове:
0
Programming Basics
HanibalBlade avatar HanibalBlade 13 Точки
case "triangle": {
                double a = Double.parseDouble(scanner.nextLine());
                double b = Double.parseDouble(scanner.nextLine());
                area = 0.5 * a * b;
                break;
                }
                 System.out.printf("%.2f", figureType);

            }
        }
    }
}


Ей тъй, нещо примерно.

Иначе можеш и без switch да я завъртиш:

ЦЪК

0
pratchet avatar pratchet 2 Точки

Не е нужно за всеки кейс да създаваш отделен блок. Принтираш резултата от всеки кейс в зависимост от условието. Който кейс отговори на условието, ще си изпринти резултата.

Ето пример:

        switch (figure) {
            case "square":
                double a = Double.parseDouble(scanner.nextLine());
                double area = a * a;
                System.out.printf("%.3f", area);
                break;
            case "rectangle":
                a = Double.parseDouble(scanner.nextLine());
                double b = Double.parseDouble(scanner.nextLine());
                area = a * b;
                System.out.printf("%.3f", area);
                break;
            case "circle":
                double r = Double.parseDouble(scanner.nextLine());
                area = Math.PI * r * r;
                System.out.printf("%.3f", area);
                break;
            case "triangle":
                a = Double.parseDouble(scanner.nextLine());
                b = Double.parseDouble(scanner.nextLine());
                area = a * b / 2;
                System.out.printf("%.3f", area);
        }

 

0
DennisKostadinov avatar DennisKostadinov 16 Точки

След като нещото, което се принтира е едно и също за всеки кейс, може да има само един принтф след края на switch-a.

0
pratchet avatar pratchet 2 Точки

И как ще стане, когато след всеки кейс имаш "break;" ? Аз съм първо ниво и ако има някой трик, не го знам.

0
DennisKostadinov avatar DennisKostadinov 16 Точки

break прекъсва само switch конструкцията. Всичко след switch-a (т.е. след затварящата скоба } на switch) се изпълнява както обикновено.

0
27/01/2019 10:12:01
DennisKostadinov avatar DennisKostadinov 16 Точки

printf може да седи след switch-a, тъй като във всички случай принтираш една и съща променлива. Няма нужда да заграждаш тялото на всеки case със { }. Тъй като във всеки case се въвежда стйоността на а, въвеждането й може да стане само веднъж преди switch-a.

Scanner scanner = new Scanner(System.in);
String figureType = scanner.nextLine();
double area = Double.parseDouble(scanner.nextLine());
switch (figureType)
{
    case "square":
        area = a * a;
        break;
    case "rectangle":
        double b = Double.parseDouble(scanner.nextLine());
        area = a * b;
        break;
    case "circle":
        area = 2 * Math.PI * a;
        break;
    case "triangle":
        double b = Double.parseDouble(scanner.nextLine());
        area = 0.5 * a * b;
        break;
}
System.out.printf("%.2f", area);

 

0
27/01/2019 02:29:11
FLodus avatar FLodus 0 Точки

Благодаря на всички за помощта.

0
svetulia avatar svetulia 1 Точки

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace area_of_fig
{
    public class Program
    {
      public  static void Main(string[] args)
        {
            string figureType = Console.ReadLine();
            double area = 0.0;
            switch (figureType)
            {
                case "square":

                    double a = Double.Parse(Console.ReadLine());
                    area = a * a;
                    break;


                case "rectangle":

                    double d = Double.Parse(Console.ReadLine());
                    double b = Double.Parse(Console.ReadLine());
                    area = d * b;
                    break;

                    break;

                case "circle":

                    double r = Double.Parse(Console.ReadLine());
                    area = 3.14 * (r * r);
                    break;


                case "triangle":

                    double c = Double.Parse(Console.ReadLine());
                    double h = Double.Parse(Console.ReadLine());
                    area = c * h * 0.5;
                    break;
            }
            {

                Console.WriteLine("{0:3f}", area);
            }

        }
        }
    }
    Дава грешка!

 

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.