Muammoni hal qilish bilan ... Loop

do> loop bilan bir oz muammo bor; dasturni ishga tushirganimda, hech bo'lmaganda qisman, men nimani nazarda tutgan bo'lsam, birinchi navbatda siz C dan F ga yoki C dan ayirboshlash uchun tanlov qilishingiz kerak va qadamni kiritganingizdan keyin dastur nima qilishni to'xtatadi siz kirganingizdan so'ng qadriyatlarni so'rashni davom ettirishingiz mumkin. Buni do qilish pastki qismi bilan ishlashga harakat qildim, lekin agar biror kishi minnatdorman deb hisoblasangiz, u ishlamaydi. Kodi:

import java.util.Scanner;

public class DegreesInConversion2 {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.println("Conversion table: ");
        int choice = input.nextInt();
        do {
            System.out.println();
            System.out.println("1 for convertion from Celsious to Fahrenhait: ");
            System.out.println("2 for convertion froom Fahrenheit to Celsious: ");
            System.out.println("3 for Exit: ");
            System.out.println();
            System.out.println("Make a choice between 1 - 3 ");
            choice = input.nextInt();
            System.out.println();
            switch (choice) {
            case 1:
                System.out.println("Enter temperature in Celsious: ");
                double cel = input.nextDouble();
                if (cel < -273.15) {
                    System.out.println("Invalid values, please enter temperature greater than -273.15 in C:");
                } else {
                    System.out.println("You enetered " + cel + "C " + "which is " + (((cel * 9)/5) + 32) + "F");
                }
                break;
            case 2:
                System.out.println("Enter temperature in Farhneit: ");
                double far = input.nextDouble();
                if (far < -459.67) {
                    System.out.println("Invalid values, please enter temperature greater than -459.67 in F:");
                } else {
                    System.out.println("You enetered " + far + "F " + "which is " + (((far - 32) * 5)/9) + "C");
                }
                break;
            case 3:
                System.out.println("Goodbyu have a nice day: ");
                break;
            default:
                System.out.println("Invalid entry: Please enter a number between 1-3:");
            }
        } while (choice != 3);
    }
}   
0

5 javoblar

Sizning boshqa savolingiz singari, bu yerda foydalanuvchini kiritish uchun so'rashdan oldin kirish uchun skanerlayapsiz.

Quyidagi ikkinchi qatorni olib tashlashingiz kerak:

    System.out.println("Conversion table: ");
    int choice = input.nextInt();
    do

Sizning kodingiz kabi, u chiqadi

Conversion table:

keyin kirish uchun kutish bloklari. Holbuki, uning o'rniga loop va chiqishda davom etishni xohlaysiz

1 for convertion from Celsious to Fahrenhait:
2 for convertion froom Fahrenheit to Celsious:
3 for Exit:

Make a choice between 1 - 3

kirishni tekshirishni bloklashdan oldin.

Agar siz birinchi blokdan biron-bir raqamni kiritgan bo'lsangiz, dasturingiz loopga kiradi va siz xohlagancha harakat qiladi. Demak, siz o'sha yerdasiz!

4
qo'shib qo'ydi

Kod ishlaydi. muammo, ehtimol, bu

int choice = input.nextInt();

before the do

Buni olib tashlang va o'zgartiring

choice = input.nextInt();

uchun

int choice = input.nextInt();
0
qo'shib qo'ydi
Siz tanlash = input.nextInt (); ni int choice = input.nextInt (); ga o'zgartirdingiz.
qo'shib qo'ydi muallif Nivas, manba
Men uni o'zgartirdim va men uni derazadan chiqarganimda bu xabarni oldim "Asosiy java.lang.Error: echilmagan kompilyatsiya muammosi: tanlov DegreesInConversion2.main (DegreesInConversion2.java:48) da o'zgarmaydiganni hal qilolmaydi"
qo'shib qo'ydi muallif Kiril, manba
qaerda chiziq 48 =} bo'lsa (tanlov! = 3);
qo'shib qo'ydi muallif Kiril, manba

Sizga ega bo'lganingizdan tashqari: int choice = input.nextInt (); menyuda ko'rsatilishdan oldin keraksiz ma'lumotlarni kiritishdan tashqari, barcha ish nisbatan yaxshi. Faqat choice = input.nextInt (); bo'lgan loop ichida int choice ni e'lon qilishingiz mumkin (ya'ni int kodi tanlash = input.nextInt (); ).

0
qo'shib qo'ydi

Kodni sinab ko'rdim va agar siz int choice = input.nextInt (); (siz oldin do {} oldin() blok) int tanlovi; .

Boshqalari aytib o'tganidek, siz do {}() blokidan oldin kirishni o'qimaslik kerak, chunki savol hali so'ralmagan.

0
qo'shib qo'ydi

break kodini unutdingizmi?

0
qo'shib qo'ydi